PHP邮件永远达不到目标

PHP邮件永远达不到目标,php,email,Php,Email,我正在尝试使用内置的邮件功能发送邮件。 然而,邮件从未到达收件人 这是mail.log中的输出,请注意,我已将真实域更改为mydomain.com Mar 21 11:15:42 localhost sendmail[30741]: s2LAFgnJ030741: from=www-data, size=2138, class=0, nrcpts=1, msgid=<201403211015.s2LAFgnJ030741@mydomain.com>, relay=www-data@

我正在尝试使用内置的邮件功能发送邮件。 然而,邮件从未到达收件人

这是mail.log中的输出,请注意,我已将真实域更改为mydomain.com

Mar 21 11:15:42 localhost sendmail[30741]: s2LAFgnJ030741: from=www-data, size=2138, 
class=0, nrcpts=1, msgid=<201403211015.s2LAFgnJ030741@mydomain.com>, relay=www-data@localhost

Mar 21 11:15:42 localhost sm-mta[30742]: s2LAFgsJ030742: from=<www-data@mydomain.com>, size=2419, 
class=0, nrcpts=1, msgid=<201403211015.s2LAFgnJ030741@mydomain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]


Mar 21 11:15:42 localhost sendmail[30741]: s2LAFgnJ030741: to=foo@mydomain.com, ctladdr=www-data (33/33), 
delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=32138, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s2LAFgsJ030742 Message accepted for delivery)

Mar 21 11:15:42 localhost sm-mta[30744]: s2LAFgsJ030742: to=<foo@mydomain.com>, delay=00:00:00, xdelay=00:00:00, 
mailer=esmtp, pri=122419, relay=spamfilter.spam.com. [xx.xx.xx.xx], dsn=5.0.0, stat=Service unavailable

Mar 21 11:15:42 localhost sm-mta[30744]: s2LAFgsJ030742: s2LAFgsJ030744: DSN: Service unavailable

Mar 21 11:15:42 localhost sm-mta[30744]: s2LAFgsJ030744: to=<www-data@mydomain.com>, delay=00:00:00, xdelay=00:00:00, 
mailer=esmtp, pri=30000, relay=spamfilter.spam.com., dsn=5.0.0, stat=Service unavailable

Mar 21 11:15:42 localhost sm-mta[30744]: s2LAFgsJ030744: s2LAFgsK030744: return to sender: Service unavailable

Mar 21 11:15:42 localhost sm-mta[30744]: s2LAFgsK030744: to=foo, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30000, dsn=2.0.0, stat=Sent
Mar 21 11:15:42 localhost sendmail[30741]:s2LAFgnJ030741:from=www-data,size=2138,
class=0,nrcpts=1,msgid=,relay=www-data@localhost
Mar 21 11:15:42 localhost sm mta[30742]:s2LAFgsJ030742:from=,size=2419,
class=0,nrcpts=1,msgid=,proto=ESMTP,daemon=MTA-v4,relay=localhost[127.0.0.1]
3月21日11:15:42本地主机发送邮件[30741]:s2LAFgnJ030741:to=foo@mydomain.com,ctladdr=www-data(33/33),
延迟=00:00:00,xdelay=00:00:00,mailer=relay,pri=32138,relay=[127.0.0.1][127.0.0.1],dsn=2.0.0,stat=Sent(s2LAFgsJ030742消息接受传递)
3月21日11:15:42本地主机sm mta[30744]:s2LAFgsJ030742:to=,延迟=00:00:00,xdelay=00:00:00,
mailer=esmtp,pri=122419,relay=spamfilter.spam.com。[xx.xx.xx.xx],dsn=5.0.0,stat=服务不可用
3月21日11:15:42本地主机sm mta[30744]:s2LAFgsJ030742:s2LAFgsJ030744:DSN:服务不可用
3月21日11:15:42本地主机sm mta[30744]:s2LAFgsJ030744:to=,延迟=00:00:00,xdelay=00:00:00,
mailer=esmtp,pri=30000,relay=spamfilter.spam.com.,dsn=5.0.0,stat=Service unavailable
3月21日11:15:42本地主机sm mta[30744]:s2LAFgsJ030744:s2LAFgsK030744:返回发件人:服务不可用
三月21日11:15:42本地主机sm mta[30744]:s2LAFgsK030744:to=foo,delay=00:00:00,xdelay=00:00:00,mailer=local,pri=30000,dsn=2.0.0,stat=Sent
我的PHP.INI中的相关行


SMTP=XX.XX.XX.XX确定本地邮件工作的配置 您可以使用sendmail包从localhost发送邮件,默认情况下,sendmail包随XAMPP一起提供。因此,如果您使用的是XAMPP,那么您可以轻松地从localhost发送邮件

In `php.ini` file find `[mail function]` and change
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
例如,您可以为gmail配置
C:\xampp\php\php.ini
C:\xampp\sendmail\sendmail.ini

C:\xampp\php\php.ini
中查找
extension=php\u openssl.dll
并删除该行开头的分号,以使SSL适用于本地主机的gmail

In `php.ini` file find `[mail function]` and change
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
现在打开C:\xampp\sendmail\sendmail.ini。用以下代码替换sendmail.ini中的所有现有代码

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
现在你完成了!!使用mail函数创建php文件并从localhost发送邮件

In `php.ini` file find `[mail function]` and change
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

注意:别忘了用你的id和密码替换上面代码中我的gmail id和gmail密码。此外,如果从上面复制了设置,请不要忘记删除重复的关键点。例如,如果在
php.ini
文件中有另一个sendmail\u路径,则在下面的行中添加注释:
sendmail\u path=“C:\xampp\mailtodisk\mailtodisk.exe”
,您是否已将邮件服务器完美配置为在LoaclHost上工作?我如何验证这一点?我不确定我有。它看起来像是被垃圾邮件过滤器阻止了。可能某些信息(标题)丢失,导致电子邮件被拒绝。您可以检查我的答案,并查看所有配置,让我知道您发现了什么,或者我可以进一步帮助我们拥有自己的SMTP,并在debian上运行nginx。