我的网站托管在共享的Linux服务器上,我使用套接字编写了一个C函数来发送自己的电子邮件。只要我发送给自己,电子邮件就会毫无问题地发送。发送给自己的电子邮件没有用户名和密码。但是,如果我将它们发送到gmail等,它们会被拒绝,因为它们会抱怨 localhost 。
这就是我目前所做的事情:
HELO localhost
MAIL FROM: myemail@mydomain.com
RCPT TO: myemail@mydomain.com
DATA
blahblah
QUIT
答案 0 :(得分:1)
你真的应该发送你的主机名,而不是localhost
。
许多服务器将拒绝具有无意义主机的消息,来自与信封域无关的服务器的消息,以及存在于许多DNSRBL之一中的服务器。
本地策略也可能禁止邮件中继,您可能需要向您的托管服务提供商寻求合适的邮件中继。
服务器间邮件传递通常不需要身份验证。
您可能需要考虑使用libsmtp等库来处理协议详细信息。
答案 1 :(得分:0)
目标服务器执行reverse DNS lookup以确定域名是否与SMTP服务器的IP相关联。
例如,如果您发送电子邮件为admin@example.com
,目标服务器将执行反向DNS查找,以确定您的服务器的IP是否与({1}}相关联。