我遇到了NUL character(s) present
错误exim
,类似于这篇文章,但由于该帖子太旧,我按照查尔斯戴维斯的建议创建了一个新问题。
$ tail -f /var/log/exim4/mainlog
2024-07-12 22:43:38 SMTP syntax error in "\026\003\001\002?\001?\001\374\003\003"\365\bZ\327b\277\373\261\032\246\217\275R\314b\201b\351\253k\304\001\3343/256/243/005/215U/301/207/311/227N/306e2+/216/226/307/361?0/023/002/023/003/023/001/300+/300/?/236/314/251/314/250/300" H=localhost [::1] NUL character(s) present (shown as '?')'>\\213fn\263N\303\244 \256'z\226o\305eE\231.:\234>3\256\243\005\215U\301\207\311\227N\306e2+\216\226\307\361?0\023\002\023\003\023\001\300+\300/?\236\314\251\314\250\300" H=localhost [::1] NUL character(s) present (shown as '?')
2024-07-12 22:43:38 SMTP syntax error in "\300\024?9\300 \300\023?3?\234?5?/\3000\300,?=?j?8?2?\377\001?\001\203???\016?\f?? localhost?\v?\004\003?\001\002?" H=localhost [::1] NUL character(s) present (shown as '?')
2024-07-12 22:43:38 SMTP syntax error in "?\f?" H=localhost [::1] NUL character(s) present (shown as '?')
2024-07-12 22:43:38 SMTP syntax error in "?\035?\027?\036?\031?\030?#???\005?\005\001?????\026???\027???\r?*?(\004\003\005\003\006\003\b\007\b\b\b \b" H=localhost [::1] NUL character(s) present (shown as '?')
2024-07-12 22:43:38 SMTP call from localhost [::1] dropped: too many syntax or protocol errors (last command was "?\035?\027?\036?\031?\030?#???\005?\005\001?????\026???\027???\r?*?(\004\003\005\003\006\003\b\007\b\b\b \b", NULL)
Exim: 4.94.2-7+deb11u3. version 4.94.2 #2 built 09-Jul-2024 09:01:33
Distro: Debian GNU/Linux 11 (bullseye)
Kernel: 5.15.83-1-pve
在终端上这工作正常
echo 'hi!' | mail -s "Sent from $(hostname) at $(date +"%F %T")" [email protected]
从安装在主机(Koha)上的 Web 应用程序发送电子邮件时出现问题。
我该如何调试该问题以查明网络应用程序是否发送了无效字符串?
问题出在 Web 应用程序设置上。它尝试
exim
使用 SSL 进行连接。背景:我确信这不是一个编码问题,并且无法将这些字符转换为乱码以外的任何内容,所以在那一刻,我禁用了 SSL,这样就解决了问题。
第一个字节是 TLS 的“客户端 hello”消息,即握手中的第一个字节。这里还有另一个例子。
\026
(0x16
十六进制)表示握手消息,即 TLS 客户端 hello 的开始。\003\001
(0x0301
十六进制)表示较旧的 v1.0。当前标准是 TLS 1.2 或 TLS 1.3。