smtp 投递横幅 - 无法通过 outlook 发送邮件

smtp 投递横幅 - 无法通过 outlook 发送邮件

我无法通过 Outlook 发送和接收邮件。我不断收到以下错误消息ssmtp

ssmtp: 550 5.3.4 554-554 5.2.0 STOREDRV.Deliver; delivery result banner

以下是 的内容/etc/ssmtp/ssmtp.conf

[email protected]
mailhub=smtp-mail.outlook.com:587
[email protected]
AuthPass=mypassword
UseSTARTTLS=YES
hostname=sierra-test
FromLineOverride=YES

答案1

请扩展您的问题并提供您的平台详细信息(分发、版本、ssmtp 版本、您从哪里安装等)。

关于您的配置文件:

/etc/ssmtp/ssmtp.conf

我发现的一些问题(可能适用也可能不适用,具体取决于版本):

  1. 主机名应该有一个 FQDN(完全限定域名),否则 Outlook(或 Gmail、Yahoo 和其他)可能会拒绝它。您可以尝试添加一个。
  2. 您似乎缺少“AuthMethod”。
  3. 有人说 UseTLS 和 UseSTARTTLS 互相排斥,也有人说两种设置都适用。您可以尝试在这些选项之间切换。

例子:

[email protected]
FromLineOverride=YES    # usually goes with root
mailhub=smtp-mail.outlook.com:587
rewriteDomain=outlook.com    # shouldn't be needed if you are not overwriting from, but doesn't hurt
[email protected]
AuthPass=mypassword
AuthMethod=LOGIN             # could be plain or cram-md5 for ex. 
UseTLS=Yes                   # this one might be yes or no
UseSTARTTLS=Yes 
hostname=sierra-test.domain.com  # full domain here, might help

您必须记住,如果您为电子邮件/帐户启用了 2FA(双因素身份验证),则需要在允许您发送电子邮件之前对其进行验证。

答案2

如果您可以提供更详细的输出,那么调试问题会更容易。使用以下命令获取详细输出:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail -v <RECEIPIENT>

但是,正如您在问题中提到的那样outlook,Outlook 最臭名昭著的问题是本地 Linux 机器上的用户名与服务器上的用户名不匹配。

例如:

  • 在您的本地机器上echo $USER给出值firstname
  • 虽然您的电子邮件用户名是[email protected]

可以通过在命令标志中指定用户信息来解决此问题,请尝试以下步骤:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail -v <RECEIPIENT> -f<firstname.lastname>

答案3

登录您的帐户并验证手机号码或其他所需的验证方法,然后再次尝试发送电子邮件。

相关内容