gpt4 book ai didi

php - 从 Linux 服务器发送邮件的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:45 26 4
gpt4 key购买 nike

我目前正在运行 Ubuntu 14.04.1。我创建了一个简单的 php 脚本来使用 mail() 发送测试电子邮件,然后我从 Firefox 访问该脚本。我有一个 VPS 服务器,只有一个 IP,没有域。每当我尝试发送电子邮件时,我都会收到来自 Google DNS 的错误阻止我。我已经包括了一些文件的结果,我认为这是需要的信息。

我使用的 mail() 是 mail("myemail@gmail.com", "test", "test");。我试过添加标题信息和更详细的主题和正文信息,但这没有帮助。

/var/log/mail.log

Dec 28 22:53:04 localhost sendmail[15365]: sBT3r4qG015365: from=www-data, size=83, class=0, nrcpts=1, msgid=<201412290353.sBT3r4qG015365@localhost.localdomain>, relay=www-data@localhost
Dec 28 22:53:05 localhost sm-mta[15366]: sBT3r4F1015366: from=<www-data@localhost.localdomain>, size=370, class=0, nrcpts=1, msgid=<201412290353.sBT3r4qG015365@localhost.localdomain>, proto=ESMTP, daemon=MTA-v4, relay=localhost.localdomain [127.0.0.1]
Dec 28 22:53:05 localhost sendmail[15365]: sBT3r4qG015365: to=myemail@gmail.com, ctladdr=www-data (33/33), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30083, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (sBT3r4F1015366 Message accepted for delivery)
Dec 28 22:53:05 localhost sm-mta[15368]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
Dec 28 22:53:06 localhost sm-mta[15368]: sBT3r4F1015366: to=<myemail@gmail.com>, ctladdr=<www-data@localhost.localdomain> (33/33), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=120370, relay=gmail-smtp-in.l.google.com. [IPv6:2607:f8b0:400e:c04::1b], dsn=5.0.0, stat=Service unavailable
Dec 28 22:53:06 localhost sm-mta[15368]: sBT3r4F1015366: sBT3r6F1015368: DSN: Service unavailable
Dec 28 22:53:06 localhost sm-mta[15368]: sBT3r6F1015368: to=<www-data@localhost.localdomain>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30000, dsn=2.0.0, stat=Sent
(email above has been changed to myemail@gmail.com)

/etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

/etc/hosts

ff02::1     ip6-allnodes
ff02::2 ip6-allrouters

127.0.0.1 localhost.localdomain localhost servername
# Auto-generated hostname. Please do not remove this comment.
x.x.x.x servername
::1 localhost ip6-localhost ip6-loopback
127.0.0.2 servername
(servername and ip above have been changed to x.x.x.x and servername)

/var/spool/mail/www-data

尝试发送一封电子邮件后,我收到了大约 70 行,因此我将包括我认为最重要的内容。我得到永久性的 fatal error 。

 550-5.7.1 
Our system has detected that this
message is likely unsolicited mail. To reduce the amount of spam sent
to Gmail, this message has been blocked.

我尝试过的:

我曾经访问 php 脚本,页面停止加载需要 30 秒,我会在 /var/log/mail.log 中收到以下错误:

 Dec 29 00:35:55 localhost sendmail[15632]: My unqualified host name (servername) unknown; sleeping for retry
Dec 29 00:36:55 localhost sendmail[15632]: unable to qualify my own domain name (servername) -- using short name

为了解决这个问题,我将 /etc/hosts 中的 127.0.0.1 行更改为现在的样子。将该行更改为现在的任何较短版本都会导致收到上面的错误消息,并且 php 脚本会永远加载。

我过去在发送邮件时也经常收到一些其他的错误信息。我查找了问题并解决了它,我在底部添加了 127.0.0.2 行。我似乎无法再通过删除该行来复制错误消息,所以也许该行不再有用。

我尝试查看 /var/log/mail.log 中的 DSN: Service unavailable,但我发现的只是更改了 的内容/etc/hosts/etc/hostname,这没有帮助。

我阅读了很多关于 SPF 记录的文章。这似乎是一个有贡献的问题。问题是每篇文章都提到有关将您的域链接到您的 IP 的内容。我没有域,所以我不确定这是否真的很重要。他们还谈论编辑 /var/named/data/,但 /var/named 对我来说不存在。我可以确认,如果我在我的 Windows 机器上尝试 nslookup 我的 IP 地址,我会得到错误 Non-existent domain。这也可能与 /var/spool/mail/www-data 中的错误有关。

我查看过我的 IP 是否被列入黑名单,但似乎没有。我最近收到了 IP,它不是共享 IP,所以我认为这不是问题。具有讽刺意味的是,在尝试接收电子邮件的某个时候,我的垃圾邮件文件夹中确实收到了 2 封邮件。我什至不再收到垃圾邮件了。这是其中一封电子邮件:

Delivered-To: myemail@gmail.com
Received: by 10.112.202.37 with SMTP id kf5csp1654885lbc;
Tue, 23 Dec 2014 20:55:39 -0800 (PST)
X-Received: by 10.68.200.68 with SMTP id jq4mr50110283pbc.30.1419396938944;
Tue, 23 Dec 2014 20:55:38 -0800 (PST)
Return-Path: <www-data@servername>
Received: from servername ([x.x.x.x])
by mx.google.com with ESMTPS id td7si16741093pab.130.2014.12.23.20.55.38
for <myemail@gmail.com>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Tue, 23 Dec 2014 20:55:38 -0800 (PST)
Received-SPF: temperror (google.com: error in processing during lookup of www-data@servername: DNS timeout) client-ip=x.x.x.x;
Authentication-Results: mx.google.com;
spf=temperror (google.com: error in processing during lookup of www-data@servername: DNS timeout) smtp.mail=www-data@servername
Received: from servername (localhost.localdomain [127.0.0.1])
by brauer (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id sBO4sYfV000877
for <myemail@gmail.com>; Tue, 23 Dec 2014 23:54:34 -0500
Received: (from www-data@localhost)
by servername (8.14.4/8.14.4/Submit) id sBO4sYgK000874;
Tue, 23 Dec 2014 23:54:34 -0500
Date: Tue, 23 Dec 2014 23:54:34 -0500
From: www-data <www-data@servername>
Message-Id: <201412240454.sBO4sYgK000874@servername>
To: myemail@gmail.com
Subject: test
X-PHP-Originating-Script: 0:file.php


test

抱歉,如果我提供了太多信息。我只是不确定什么是相关的。任何帮助,将不胜感激。谢谢

最佳答案

我认为如果没有 SPF 和/或 DKIM,您将无法成功将邮件发送到 Gmail,更不用说没有域了。为什么不设置一个域,或者使用单独的 SMTP 服务器来发送邮件呢? (例如,https://github.com/PHPMailer/PHPMailer)。或者使用 Mandrill、Amazon SES、SendGrid 等。

关于php - 从 Linux 服务器发送邮件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27684425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com