ssmtp 无法识别 ctrl+d

ssmtp 无法识别 ctrl+d

我正在尝试通过命令行从 ubuntu 服务器 (14.04.2 LTS) 发送电子邮件,然后在小脚本中发送电子邮件。为此,我想将 ssmtp 与网络内部的外部邮件服务器一起使用,不需要任何身份验证。这意味着external-server.com:25另一台主机上有一个 smtp 服务器 (),我想使用它来发送邮件。由于我的主机和 smtp 服务器位于同一网络中,因此我可以访问 smtp 服务器而无需任何身份验证。

因此我配置了 ssmtp 来使用该外部服务器,这是我的 ssmtp.conf:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
[email protected]

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=external-server.com:25

# Where will the mail seem to come from?
rewriteDomain=external-server.com

# The full hostname
#hostname=

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

#Settings for sending logfiles as [email protected]
[email protected]
AuthPass=
UseTLS=YES
UseSTARTTLS=YES

我现在可以拨打电话 并输入这样的消息:ssmtp [email protected]

To: [email protected]
From: [email protected]
Subject: Test

Lorem ipsum ...

如果我现在点击Ctrl+ D,则不会有任何反应,我实际上可能需要等待几分钟。此外,Ctrl+C似乎被忽略了。只需Ctrl+Z即可。

-logmail.err是空的,mail.log仅显示

Mar 23 14:53:50 ubuntu-server sSMTP[2810]: Creating SSL connection to host

我还使用 tcpdump 验证了连接已启动。因此,我能指出的唯一问题是Ctrl+D似乎被忽略了。有人知道这个问题或更好的解决方案吗?

编辑

实际上问题是该AuthUser字段不为空,并且其他子网可以使用 smtp 服务器,但不允许我的子网使用。

取消注释 FromLineOverride=YES 也很好,因此用户可以使用自己的电子邮件地址。

答案1

我绝不是这个主题的专家,但是你的配置似乎缺失了:

TLSCert
The file name of an RSA certificate to use for TLS, if required.
TLSKey
The file name of an RSA key to use for TLS, if required.
TLS_CA_File
A file of trusted certificates for validating the server, if required.
TLS_CA_Dir
A directory of trusted certificates for validating the server, if required.

我认为如果使用 TLS,这些是必需的

来源:http://linux.die.net/man/5/ssmtp.conf

相关内容