配置 SMTP 中继后,Sendmail 拒绝连接

配置 SMTP 中继后,Sendmail 拒绝连接

我正在家用电脑上设置 sendmail 以用于我的网络服务器。我已将其设置为使用托管公司提供的 SMTP 服务器。

如果我使用以下命令,它作品

sendmail -Am -t -v

然后我输入收件人和发件人的电子邮件。


但如果我尝试以下操作,不起作用

sendmail -v [email protected] < test.txt

收件人电子邮件与之前的命令中的相同,但在这种情况下我没有指定发件人电子邮件,我认为这就是问题所在。

我猜是它从 user@localhost 发送邮件导致 smtp 服务器拒绝它。如果是这样,我该如何让它从[电子邮件保护]

答案1

我建议,如果你的家用机器只需要发送电子邮件而不是接收电子邮件,你可以设置邮件传输协议而是。它提供了发送邮件所需的所有功能,而无需进行任何入站处理。以下是示例.msmtprc

主机 smtp.example.com
用户测试
密码 testpass
来自[电子邮件保护]
授权登录

这样,我的用户就可以发送看似来自 的邮件example.com。如果您的 Web 服务器用户需要发送邮件,您可以为该用户配置此功能。

答案2

你应该能够通过编辑/etc/mail/sendmail.cf文件来实现这一点

#vi /etc/mail/sendmail.cf

添加

FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl

下一个

#vi /etc/mail/genericstable

添加

username   [email protected]

因此,您可以让它看起来像是 apache 或 root 以其他人的身份发送了电子邮件

apache     [email protected]
root       [email protected]

下一个

#vi /etc/mail/generics-domains

添加

subdomain.mydomain.com
mydomain.com

接下来生成新的配置并重新启动 sendmail

#makemap -r hash genericstable.db < genericstable
#m4 sendmail.mc > sendmail.cf
#/etc/init.d/sendmail restart

现在您应该能够以 root 或 apache 或任何您上面定义的用户身份发送您的电子邮件,并且它将在您的收件箱中显示来自他们的电子邮件。

以 root 或 apache 进程身份登录时尝试

#echo "test" | sendmail [email protected]

您应该发现发件人是 anotherusername 或 anotherusername-2

相关内容