我已经在这里坐了几个小时,现在试图让 sendmail 通过外部 SMTP 服务器发送电子邮件。我已经非常接近了,但现在我完全被困住了。sendmail 似乎没有发送我设置的身份验证信息。有没有我遗漏的配置行?
请帮忙。:(
运行 CentOS 5.7
编辑:
根据要求,我将从我的 sendmail 中添加一些内容。
我指定使用身份验证信息的地方:
FEATURE(authinfo',hash -o /etc/mail/auth/client-info.db')dnl
/etc/mail/auth/client-info:
AuthInfo:in.mailjet.com "U:myusername" "P:mypassword" "M:PLAIN"
尝试发送电子邮件:
# sendmail -AM -t -v
to:myemail@gmail.com
from:root@mydomain.com
.
myemail@gmail.com... Connecting to in6.mailjet.com. via relay...
220 in6.mailjet.com ESMTP Mailjet
>>> EHLO mydomain.com
250-in6.mailjet.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO mydomain.com
250-in6.mailjet.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
>>> MAIL From:<root@mydomain.com> SIZE=37
250 2.1.0 Ok
>>> RCPT To:<myemail@gmail.com>
>>> DATA
554 5.7.1 <myemail@gmail.com>: Relay access denied
554 5.5.1 Error: no valid recipients
>>> RSET
250 2.0.0 Ok
/root/dead.letter... Saved message in /root/dead.letter
Closing connection to in6.mailjet.com.
>>> QUIT
221 2.0.0 Bye
Run Code Online (Sandbox Code Playgroud)
对于 sendmail,我通常通过在 .txt 文件中添加一个条目来管理 SMTP 身份验证/etc/mail/access。这里有一个简单的设置示例:
# /etc/mail/access
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
AuthInfo:in.mailjet.com "U:smmsp" "I:myusername" "P:mypassword" "M:PLAIN"
Run Code Online (Sandbox Code Playgroud)
保存并重新启动 sendmail 守护进程/sbin/service sendmail restart。