Adding the mail application for Sikosis.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3915 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
095b7731f4
commit
8c9c6943ad
8
src/apps/bin/mail/Jamfile
Normal file
8
src/apps/bin/mail/Jamfile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
SubDir OBOS_TOP src apps bin mail ;
|
||||||
|
|
||||||
|
BinCommand mail :
|
||||||
|
mail.cpp
|
||||||
|
mailApp.cpp
|
||||||
|
;
|
||||||
|
|
||||||
|
LinkSharedOSLibs mail : be mail ;
|
137
src/apps/bin/mail/mail.cpp
Normal file
137
src/apps/bin/mail/mail.cpp
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||||
|
//
|
||||||
|
// Copyright (c) 2003, OpenBeOS
|
||||||
|
//
|
||||||
|
// This software is part of the OpenBeOS distribution and is covered
|
||||||
|
// by the OpenBeOS license.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// File: mail.cpp
|
||||||
|
// Author: Santiago (Jacques) Lema
|
||||||
|
// Description: sends an e-mail from the command-line
|
||||||
|
// Created : May 23, 2003
|
||||||
|
//
|
||||||
|
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <OS.h>
|
||||||
|
#include <String.h>
|
||||||
|
#include <Application.h>
|
||||||
|
|
||||||
|
#include "mailApp.h"
|
||||||
|
|
||||||
|
int main( int argc, char* argv[] )
|
||||||
|
{
|
||||||
|
|
||||||
|
// No arguments, show usage
|
||||||
|
if (argc==1) {
|
||||||
|
fprintf(stdout,"[OBOS-mail] Sorry: This program can only send mail, not read it.\n");
|
||||||
|
fprintf(stdout,"usage: /bin/mail [-v] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...\n");
|
||||||
|
fflush(stdout);
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *subject ="No title";
|
||||||
|
char *cc = "";
|
||||||
|
char *bcc = "";
|
||||||
|
BString to = "";
|
||||||
|
BString body="";
|
||||||
|
|
||||||
|
bool verbose =false;
|
||||||
|
//parse arguments
|
||||||
|
for (int i=1; i<argc; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (strcmp (argv[i], "-v") == 0)
|
||||||
|
verbose = true;
|
||||||
|
else
|
||||||
|
if (strcmp (argv[i], "-s") == 0)
|
||||||
|
{
|
||||||
|
subject = argv[i+1];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (strcmp (argv[i], "-c") == 0)
|
||||||
|
{
|
||||||
|
cc = argv[i+1];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (strcmp (argv[i], "-b") == 0)
|
||||||
|
{
|
||||||
|
bcc = argv[i+1];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
to.Append( argv[i] );
|
||||||
|
if (i<argc-1)
|
||||||
|
to.Append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// fprintf(stdout,"[ OBOS command-line mail sender ]\n");
|
||||||
|
|
||||||
|
// if (verbose)
|
||||||
|
// fprintf(stdout,"Verbose on\n");
|
||||||
|
// else
|
||||||
|
// fprintf(stdout,"Verbose off\n");
|
||||||
|
|
||||||
|
if (verbose)
|
||||||
|
{
|
||||||
|
fprintf(stdout,"\n");
|
||||||
|
fprintf(stdout,"To:\t<%s> \n",to.String());
|
||||||
|
fprintf(stdout,"Cc:\t<%s> \n",cc);
|
||||||
|
fprintf(stdout,"Bcc:\t<%s> \n",bcc);
|
||||||
|
fprintf(stdout,"Subj:\t<%s> \n",subject);
|
||||||
|
fprintf(stdout,"Body:\t<%s> \n",body.String());
|
||||||
|
fprintf(stdout,"\n");
|
||||||
|
}
|
||||||
|
//read each line until we get a single dot "." on a line
|
||||||
|
|
||||||
|
|
||||||
|
//check if valid recipients
|
||||||
|
if(
|
||||||
|
strcmp (to.String(), "") == 0
|
||||||
|
&& strcmp (cc, "") == 0
|
||||||
|
&& strcmp (bcc, "") == 0
|
||||||
|
)
|
||||||
|
{
|
||||||
|
fprintf(stdout,"[Error]\nYou must specify at least one recipient in to,cc or bcc fields.\n");
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
char line[32768] ="";
|
||||||
|
|
||||||
|
printf("Now type your message.\nType '.' alone on a line to send it.\n");
|
||||||
|
do
|
||||||
|
{
|
||||||
|
gets(line);
|
||||||
|
|
||||||
|
if(strcmp (line, ".") != 0)
|
||||||
|
{
|
||||||
|
body.Append(line);
|
||||||
|
body.Append("\n");
|
||||||
|
}
|
||||||
|
//fprintf(stdout,"Line: %s \n",line);
|
||||||
|
}while (strcmp (line, ".") != 0);
|
||||||
|
|
||||||
|
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stdout,"\nBody:\n%s\n",body.String());
|
||||||
|
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stdout,"\nSending E-mail...\n");
|
||||||
|
|
||||||
|
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
mailApp *be_app = new mailApp();
|
||||||
|
// be_app->Run();
|
||||||
|
be_app->sendMail(subject, body.String(),to.String(),cc,bcc);
|
||||||
|
delete be_app;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
40
src/apps/bin/mail/mailApp.cpp
Normal file
40
src/apps/bin/mail/mailApp.cpp
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#include <storage/AppFileInfo.h>
|
||||||
|
#include <storage/Path.h>
|
||||||
|
#include <storage/File.h>
|
||||||
|
#include <storage/FindDirectory.h>
|
||||||
|
|
||||||
|
#include "mailApp.h"
|
||||||
|
#include <String.h>
|
||||||
|
#include <E-mail.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define APP_SIG "application/x-vnd.OBos-cmd-mail"
|
||||||
|
|
||||||
|
|
||||||
|
mailApp :: mailApp() : BApplication(APP_SIG)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
mailApp :: ~mailApp()
|
||||||
|
{
|
||||||
|
// empty
|
||||||
|
}
|
||||||
|
|
||||||
|
void mailApp :: sendMail(const char *subject, const char*body, const char *to, const char *cc, const char *bcc)
|
||||||
|
{
|
||||||
|
BMailMessage *mail;
|
||||||
|
mail = new BMailMessage();
|
||||||
|
mail->AddHeaderField(B_MAIL_TO, to);
|
||||||
|
mail->AddHeaderField(B_MAIL_CC, cc);
|
||||||
|
mail->AddHeaderField(B_MAIL_BCC, bcc);
|
||||||
|
mail->AddHeaderField(B_MAIL_SUBJECT, subject);
|
||||||
|
mail->AddContent(body,strlen(body));
|
||||||
|
status_t result = mail->Send();
|
||||||
|
|
||||||
|
if (result==B_OK)
|
||||||
|
fprintf(stdout, "\nMessage was sent successfully.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
17
src/apps/bin/mail/mailApp.h
Normal file
17
src/apps/bin/mail/mailApp.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#ifndef MAILAPP_H
|
||||||
|
#define MAILAPP_H
|
||||||
|
|
||||||
|
#include <app/Application.h>
|
||||||
|
|
||||||
|
class mailApp : public BApplication
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
mailApp(void);
|
||||||
|
~mailApp();
|
||||||
|
|
||||||
|
virtual void sendMail(const char *subject, const char*body, const char *to, const char *cc, const char *bcc);
|
||||||
|
//private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user