我已经通过以下方式在 Ubuntu 10.04 上安装了 sSMTP:
sudo apt-get install ssmtp
我的配置文件是:
# # sSMTP sendmail 的配置文件 # # 获取用户 ID < 1000 的所有邮件的人 # 将其留空以禁用重写。 [电子邮件保护] # 邮件发往的地方。实际的机器名称是必需的 # 参考 MX 记录。通常邮件主机名为 mail.domain.com mailhub=smtp.gmail.com:587 # 邮件看起来是从哪里来的? #rewriteDomain= # 完整主机名 主机名=somedomain.com # 用户是否允许设置自己的发件人:地址? # YES - 允许用户指定自己的发件人:地址 # 否 - 使用系统生成的发件人:地址 #FromLineOverride=YES [电子邮件保护] 验证密码=**** usestarttls=yes
我是否以明文形式传输我的凭据?调用 ssmtp 是否是安全的操作?
谢谢。
答案1
smtp.gmail.com:587
如果STARTTLS
没有发出,邮件提交将失败:
[palantir]-[/var/tmp]-[528] % nc smtp.gmail.com 587 [2:16]
220 mx.google.com ESMTP b3sm14232728ibf.7
EHLO domain.com
250-mx.google.com at your service, [67.167.112.165]
250-SIZE 35651584
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
MAIL
530 5.7.0 Must issue a STARTTLS command first. b3sm14232728ibf.7
STARTTLS
220 2.0.0 Ready to start TLS
对于此用例,您的凭据必须通过 TLS 传输,因此它们不会以明文形式发送。但请注意,虽然这是常见行为,但这不是必需的行为——服务器很可能不会要求提交端口上的 TLS,也可能同样错误配置您的客户端。
正如 joschi 提到的,你可以使用任何能够捕获网络数据包的工具来确保它是加密的,并且我也想tcpflow
为此添加一个建议。
答案2
除了设置之外,UseStartTLS
您还应该设置UseTLS
为yes
。请参阅ssmtp.conf(5)。
您还可以通过使用或ssmtp
嗅探流量来检查是否正在使用加密连接。wireshark
tcpdump