mail_utils/mail: Reformat & fix a few error handling problems.
This commit is contained in:
+35
-34
@@ -1,36 +1,35 @@
|
||||
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
//
|
||||
// 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
|
||||
// Modified by: Jérome Duval
|
||||
//
|
||||
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
/*
|
||||
* Copyright 2003-2016, Haiku Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Santiago (Jacques) Lema
|
||||
* Jérôme Duval, [email protected]
|
||||
* Augustin Cavalier, <waddlesplash>
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <Application.h>
|
||||
#include <String.h>
|
||||
#include <E-mail.h>
|
||||
|
||||
#define APP_SIG "application/x-vnd.OBos-cmd-mail"
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#define APP_SIG "application/x-vnd.Haiku-mail_utils-mail"
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
BApplication mailApp(APP_SIG);
|
||||
|
||||
// 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");
|
||||
if (argc < 2) {
|
||||
fprintf(stdout,"This program can only send mail, not read it.\n");
|
||||
fprintf(stdout,"usage: %s [-v] [-s subject] [-c cc-addr] "
|
||||
"[-b bcc-addr] to-addr ...\n", argv[0]);
|
||||
fflush(stdout);
|
||||
return B_OK;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *subject = "No title";
|
||||
@@ -40,7 +39,7 @@ int main( int argc, char* argv[] )
|
||||
BString body = "";
|
||||
|
||||
bool verbose =false;
|
||||
//parse arguments
|
||||
// Parse arguments
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-v") == 0)
|
||||
verbose = true;
|
||||
@@ -70,17 +69,17 @@ int main( int argc, char* argv[] )
|
||||
fprintf(stdout, "\n");
|
||||
}
|
||||
|
||||
//check if valid recipients
|
||||
if (strcmp(to.String(), "") == 0
|
||||
&& strcmp(cc, "") == 0
|
||||
&& strcmp(bcc, "") == 0) {
|
||||
// Check if recipients are valid
|
||||
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;
|
||||
fprintf(stdout, "[Error]: You must specify at least one recipient "
|
||||
"in to, cc or bcc fields.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
//read each line until we get a single dot "." on a line
|
||||
// Read each line until we get a single dot "." on a line
|
||||
char line[32768] = "";
|
||||
|
||||
printf("Now type your message.\nType '.' alone on a line to send it.\n");
|
||||
@@ -99,8 +98,6 @@ int main( int argc, char* argv[] )
|
||||
|
||||
if (verbose)
|
||||
fprintf(stdout, "\nSending E-mail...\n");
|
||||
|
||||
|
||||
fflush(stdout);
|
||||
|
||||
BMailMessage mail;
|
||||
@@ -111,7 +108,11 @@ int main( int argc, char* argv[] )
|
||||
mail.AddContent(body.String(), strlen(body.String()));
|
||||
status_t result = mail.Send();
|
||||
|
||||
if (result==B_OK)
|
||||
if (result == B_OK) {
|
||||
fprintf(stdout, "\nMessage was sent successfully.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
fprintf(stdout, "Message failed to send: %s", strerror(result));
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user