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;
}
このコードは正常に機能します。sendmail がシステム上にあることを確認する必要があります。問題が発生したためです。PATH 変数が正しく設定されていません。そのため、sendmail がシステム上に見つかりませんでした。私が受け取ったエラーメッセージはありませんでした。メールが送信されるようです。しかし、そうではありませんでした。Sendmail プロセスが見つからない場合、コード (リターンまたはエラー コード) 内でエラー メッセージを受け取ることをどのように認識できますか? 事前にサンクス