mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-04-09 22:43:11 +02:00
2020-11-18 Fred Gleason <fredg@paravelsystems.com>
* Added a '--dry-run' switch to the 'sendmail_test' test harness. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
aba286e097
commit
55db0e4dd9
@ -20606,3 +20606,5 @@
|
||||
2020-11-18 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Implemented support for multi-byte UTF-8 characters for the
|
||||
display-name component of e-mail addresses in 'RDSendMail()'.
|
||||
2020-11-18 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Added a '--dry-run' switch to the 'sendmail_test' test harness.
|
||||
|
@ -103,6 +103,8 @@ QByteArray __RDSendMail_EncodeAddress(const QString &str,bool *ok)
|
||||
//
|
||||
// Output in "display-name <local@domain>" format
|
||||
//
|
||||
// FIXME: Add support for IDNA (see RFC5891)
|
||||
//
|
||||
if(name.isEmpty()) {
|
||||
return addr.toAscii();
|
||||
}
|
||||
@ -116,7 +118,8 @@ QByteArray __RDSendMail_EncodeAddress(const QString &str,bool *ok)
|
||||
//
|
||||
bool RDSendMail(QString *err_msg,const QString &subject,const QString &body,
|
||||
const QString &from_addr,const QStringList &to_addrs,
|
||||
const QStringList &cc_addrs,const QStringList &bcc_addrs)
|
||||
const QStringList &cc_addrs,const QStringList &bcc_addrs,
|
||||
bool dry_run)
|
||||
{
|
||||
QStringList args;
|
||||
QProcess *proc=NULL;
|
||||
@ -209,6 +212,13 @@ bool RDSendMail(QString *err_msg,const QString &subject,const QString &body,
|
||||
msg+="\r\n";
|
||||
msg+=raw;
|
||||
|
||||
if(dry_run) {
|
||||
printf("*** MESSAGE STARTS ***\n");
|
||||
printf("%s",msg.toAscii().constData());
|
||||
printf("*** MESSAGE ENDS ***\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// Send message
|
||||
//
|
||||
@ -247,10 +257,11 @@ bool RDSendMail(QString *err_msg,const QString &subject,const QString &body,
|
||||
|
||||
bool RDSendMail(QString *err_msg,const QString &subject,const QString &body,
|
||||
const QString &from_addr,const QString &to_addrs,
|
||||
const QString &cc_addrs,const QString &bcc_addrs)
|
||||
const QString &cc_addrs,const QString &bcc_addrs,bool dry_run)
|
||||
{
|
||||
return RDSendMail(err_msg,subject,body,from_addr,
|
||||
to_addrs.split(",",QString::SkipEmptyParts),
|
||||
cc_addrs.split(",",QString::SkipEmptyParts),
|
||||
bcc_addrs.split(",",QString::SkipEmptyParts));
|
||||
bcc_addrs.split(",",QString::SkipEmptyParts),
|
||||
dry_run);
|
||||
}
|
||||
|
@ -27,11 +27,11 @@
|
||||
bool RDSendMail(QString *err_msg,const QString &subject,const QString &body,
|
||||
const QString &from_addr,const QStringList &to_addrs,
|
||||
const QStringList &cc_addrs=QStringList(),
|
||||
const QStringList &bcc_addrs=QStringList());
|
||||
const QStringList &bcc_addrs=QStringList(),bool dry_run=false);
|
||||
bool RDSendMail(QString *err_msg,const QString &subject,const QString &body,
|
||||
const QString &from_addr,const QString &to_addrs,
|
||||
const QString &cc_addrs=QString(),
|
||||
const QString &bcc_addrs=QString());
|
||||
const QString &bcc_addrs=QString(),bool dry_run=false);
|
||||
|
||||
|
||||
#endif // RDSENDMAIL
|
||||
|
@ -41,6 +41,7 @@ MainObject::MainObject(QObject *parent)
|
||||
QString bcc_addrs;
|
||||
QString subject;
|
||||
QString body;
|
||||
bool dry_run=false;
|
||||
|
||||
//
|
||||
// Read Command Options
|
||||
@ -73,6 +74,10 @@ MainObject::MainObject(QObject *parent)
|
||||
body=cmd->value(i);
|
||||
cmd->setProcessed(i,true);
|
||||
}
|
||||
if(cmd->key(i)=="--dry-run") {
|
||||
dry_run=true;
|
||||
cmd->setProcessed(i,true);
|
||||
}
|
||||
if(!cmd->processed(i)) {
|
||||
fprintf(stderr,"sendmail_test: unknown option \"%s\"\n",
|
||||
(const char *)cmd->key(i));
|
||||
@ -80,7 +85,8 @@ MainObject::MainObject(QObject *parent)
|
||||
}
|
||||
}
|
||||
|
||||
if(!RDSendMail(&err_msg,subject,body,from_addr,to_addrs,cc_addrs,bcc_addrs)) {
|
||||
if(!RDSendMail(&err_msg,subject,body,
|
||||
from_addr,to_addrs,cc_addrs,bcc_addrs,dry_run)) {
|
||||
fprintf(stderr,"%s\n",err_msg.toUtf8().constData());
|
||||
exit(256);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include <qobject.h>
|
||||
|
||||
#define SENDMAIL_TEST_USAGE "[options]\n\nTest the Rivendell email sending routines\n\nOptions are:\n--from-address=<addr>\n Originating email address\n\n--to-addresses=<addrs>\n To addresses (comma seperated)\n\n--cc-addresses=<addrs>\n CC addresses (comma seperated)\n\n--bcc-addresses=<addrs>\n BCC addresses (comma seperated)\n\n--subject=<str>\n Message subject\n\n--body=<str>\n Message body\n\n"
|
||||
#define SENDMAIL_TEST_USAGE "[options]\n\nTest the Rivendell email sending routines\n\nOptions are:\n--from-address=<addr>\n Originating email address\n\n--to-addresses=<addrs>\n To addresses (comma seperated)\n\n--cc-addresses=<addrs>\n CC addresses (comma seperated)\n\n--bcc-addresses=<addrs>\n BCC addresses (comma seperated)\n\n--subject=<str>\n Message subject\n\n--body=<str>\n Message body\n\n--dry-run\n Print the raw message to STDOUT, then exit\n\n"
|
||||
|
||||
class MainObject : public QObject
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user