qmail-inject returns 111
qmail-inject returns 111
本文关键字:returns qmail-inject 更新时间:2023-10-16
嗨,我在使用qmail时遇到了问题。我想从我的程序发送电子邮件,我从 qmail-inject 收到 111 错误代码。但是,如果我尝试从命令行发送相同的电子邮件,它可以工作。
在我的代码中:
if ((pid = fork()) < 0) {
logger.error("error creating on new process");
}
else if (pid == 0) {
logger.info("qmail-inject is calling now for Dlp Notify");
if (execl("/opt/program/bin/sendmail","sendmail", notifySender, tempMail,(char*) 0) == -1) {
logger.error("notify operation failed: %s", strerror(errno));
exit(1);
}
}
发送邮件是一个这样的脚本:
/bin/cat $2 | /opt/smtp/bin/qmail-inject -f $1
当我在命令行上运行此脚本时,效果很好。但是从我的程序来看,这不起作用。
任何帮助将不胜感激。
你执行qmail-inject
的 C 代码看起来不错,至少从你向我们展示的内容来看是这样。
man qmail-inject
告诉我们退出代码 111 表示临时错误。
qmail-inject
的源代码(v1.03,在这里与netqmail 1.06看起来相同)显示以下内容:
void temp() { _exit(111); }
void die_nomem() {
substdio_putsflush(subfderr,"qmail-inject: fatal: out of memoryn"); temp(); }
void die_invalid(sa) stralloc *sa; {
substdio_putsflush(subfderr,"qmail-inject: fatal: invalid header field: ");
substdio_putflush(subfderr,sa->s,sa->len); perm(); }
void die_qqt() {
substdio_putsflush(subfderr,"qmail-inject: fatal: unable to run qmail-queuen"); temp(); }
void die_chdir() {
substdio_putsflush(subfderr,"qmail-inject: fatal: internal bugn"); temp(); }
void die_read() {
if (errno == error_nomem) die_nomem();
substdio_putsflush(subfderr,"qmail-inject: fatal: read errorn"); temp(); }
从后者(加上对qmail-inject.c
的更多查找)可以得出以下可能的原因,导致qmail-inject
退出111:
- 内存不足
- 无效的标头字段(传递给
-f
或从配置/控制文件中读取) - 无法运行
qmail-queue
(可能是由于它不存在,或者缺少它的搜索路径) - 无法
chdir
到qmail
的控制/配置文件文件夹 - 无法读取 qmail 的配置/控制文件
检查您身边的日志也可能有所帮助。
相关文章:
- CreateWICTextureFromFile returns E_NOINTERFACE
- cl::Event::waitForEvents returns -7 (CL_EXEC_STATUS_ERROR_ F
- vector[0].getPosition() returns 0
- CreateInputLayout returns E_INVALIDARG
- ldap_search_s returns LDAP_OPERATIONS_ERROR
- CreateCompatibleDC(IntPtr.Zero) returns IntPtr.Zero
- glUniformLocation returns -1
- DirectX9 CreateOffscreenPlainSurface returns D3DERR_INVALIDC
- OpenGL glReadPixels returns 0
- gdk_screen_get_default() returns null
- UIAutomation: AddAutomationEventHandler() returns E_INVALIDA
- C++ _snprintf returns -1
- CryptHashData returns ERROR_INVALID_PARAMETER (CAPI)
- FindClass returns null
- QEnableSharedFromThis::sharedFromThis() returns nullptr
- SDL_ttf TTF_OpenFont returns NULL
- QSslSocket and supportsSsl() returns false
- setData returns false for QAbstractProxyModel
- BluetoothGATTSetCharacteristicValue returns E_INVALIDARG or
- qmail-inject returns 111