我可以设置系统邮件以使用外部 SMTP 服务器吗?

我可以设置系统邮件以使用外部 SMTP 服务器吗?

是否可以在 Linux 机器上设置系统邮件通过不同的 smtp 服务器发送 - 甚至可能需要身份验证?如果是这样,我该怎么做?

如果不清楚,请举个例子。如果我在命令行输入:

cat body.txt | mail -s "just a test" [email protected]

是否可以通过外部 SMTP 服务器(例如 G-mail)发送该邮件?

我不是在寻找“一种从命令行从 gmail 发送邮件的方法”,而是在寻找一种将整个系统配置为使用特定 SMTP 服务器的选项,或者可能是 SMTP 服务器上的一个帐户(可能会覆盖发件人地址) 。

答案1

我发现 sSMTP 使用起来非常简单。

在基于 Debian 的系统中:

apt-get install ssmtp

然后编辑/etc/ssmtp/ssmtp.conf中的配置文件

使用 Gmail 发送电子邮件的示例配置:

# root is the person who gets all mail for userids < 1000
[email protected]

# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES

笔记:确保您的系统中存在“mail”命令。 mailutils 软件包应该在基于 Debian 的系统中提供这一功能。

更新:有人(以及不同 Linux 发行版的错误报告)报告称 sSMTP 不接受带有“空格”或“#”字符的密码。如果 sSMTP 不适合您,则可能存在这种情况。

答案2

为了后缀:

  • 添加外部邮件中继的 IP/etc/hosts并为其添加别名邮件中继。
  • 修改后缀配置:

    relayhost = [mailrelay]
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
    smtp_sasl_security_options = noanonymous
    
  • 编辑/etc/postfix/smtp_auth

    mailrelay login:password
    
  • 转换为哈希格式

postmap /etc/postfix/smtp_auth

不用说只有 root 应该能够读取此内容......chmod u=r,og=-

答案3

mailx 支持在 CLI 上设置 smtp 服务器...

echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v [email protected]

只要您的 smtp 服务器允许您发送未经身份验证的邮件,则无需安装任何内容。

没有一个答案可以设置 smtp 服务器全部您的 Linux 机器上可能装有的软件。每个电子邮件客户端都可以配置一个 SMTP 服务器。

答案4

按照以下说明设置本地 exim SMTP 服务器页面,但从选项中选择“智能主机发送的邮件;无本地邮件”选项第一的Exim 配置屏幕。这将在您的盒子上设置一个 SMTP 服务器,该服务器可以从“mail”或“mailx”命令接收邮件,并将所有邮件转发到智能主机(在您的情况下是 Gmail 服务器)进行传递。

要通过 Gmail 服务器发送电子邮件,您需要设置Exim 的 TLS 支持,这并不是小事。这如何给出一些解释并这是包含特定于 Gmail 的进一步说明的链接。您应该给自己几个小时的时间来完成这项工作。我建议首先将电子邮件从您的邮箱发送到您具有 root 访问权限的启用 TLS 的 SMTP 服务器,以便您可以在尝试通过 Gmail 服务器发送之前从两侧调试您的 Exim TLS 配置。由于通信是加密的,因此您将无法使用 tcpdump 等工具来分析线路上的协议。

相关内容