我在 Linux 系统上部署了以下 C++ 代码
int sendEMail ( string sEMailAddress, string sEMailSubject , string sEMailText )
{
int nRc = nOK;
// send email here
const int nBUFFERSIZE = 55000;
static char szCommand [ nBUFFERSIZE ] = { 0 };
const char * szEmailText = NULL;
FILE *fpipe = popen("sendmail -t", "w");
szEmailText=sEMailText.c_str();
if ( fpipe != NULL )
{
fprintf(fpipe, "To: %s\n", sEMailAddress.c_str());
fprintf(fpipe, "From: %s\n", "test@mail.de");
fprintf(fpipe, "Subject: %s\n\n", sEMailSubject.c_str());
fwrite(sEMailText.c_str(), 1, strlen(sEMailText.c_str()), fpipe);
pclose(fpipe);
}
else
{
Logger_log ( 1 , "ERROR: Cannot create pipe to mailx" );
nRc = -1;
}
return nRc;
}
此代码工作正常。我必须确保应该在 System.sendmail 上找到 sendmail。因为我有一个问题。PATH 变量设置不正确。因此在系统上找不到 sendmail。我没有收到错误消息。电子邮件似乎发送出去。但事实并非如此。如果找不到 Sendmail 进程,我如何在代码(返回或错误代码)中意识到我收到错误消息?提前感谢