远程主机无法在 ubuntu 中使用 sendmail 发送邮件

远程主机无法在 ubuntu 中使用 sendmail 发送邮件

我已按照以下步骤配置 sendmail

  1. apt-get install sendmail
  2. 添加以下内容/etc/mail/auth/client-info

     AuthInfo:<gworks.yyy> "U:<[email protected]>" "I:<[email protected]>" "P:<xxxxxxx>"
    
  3. sudo bash -c "cd /etc/mail/auth/ && makemap hash client-info < client-info"
  4. /etc/mail/sendmail.mc在之前添加以下几行邮件定义

    定义(SMART_HOST', <gworks.yyy>)dnl define(confAUTH_MECHANISMS',EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(authinfo',`hash /etc/mail/auth/client-info')dnl

  5. sudo bash -c "cd /etc/mail/ && m4 sendmail.mc > sendmail.cf"
  6. 重新启动 sendmail 服务

使用 telnet 命令测试

远程主机的 telnet 命令引发错误拒绝中继

root@e5eae2c464a7:/var/www/public# telnet 10.1.2.3 25
Trying 10.1.2.3...
Connected to 10.1.2.3.
Escape character is '^]'.
220 cthree.gworks.yyy ESMTP Sendmail 8.15.2/8.15.2/Debian-3; Tue, 11 Oct 2016 06:45:28 GMT; (No UCE/UBE) logging access from: development.internet(OK)-development.internet [10.1.2.4]
helo server
250 cthree.gworks.mobi Hello development.internet [10.1.2.4], pleased to meet you
mail from: [email protected]
250 2.1.0 [email protected]... Sender ok
rcpt to: [email protected]
550 5.7.1 [email protected]... Relaying denied   

我在这里做错了什么为什么没有从远程主机发送邮件?

答案1

Sendmail 默认拒绝中继(接受从外部主机到外部电子邮件地址的消息)。

您可以允许基于发送主机 IP 地址或在 SMTP 身份验证之后进行中继。

为了允许基于发送主机 IPv4 地址进行中继,请使用访问文件中的以下条目之一(访问文件需要使用 进行编译makemap):

# relay if connection from 10.1.2.4
connect:10.1.2.4  RELAY
# relay if connection from 10.2.0.0/24
connect:10.2.0    RELAY
# relay if connection from 10.3.0.0/16
connect:10.3      RELAY

警告: 在我看来,仅基于 IP 地址的中继,不进行任何额外检查,只适合作为小型网络/站点的永久解决方案。垃圾邮件发送者和黑客使其不适合大型网络。

相关内容