我正在尝试使用内置邮件功能发送邮件。 但邮件永远不会到达收件人。
这是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
我的PHP.INI中的相关行
SMTP = XX.XX.XX.XX&lt; - 已验证它可以与PHPMailer一起使用。
SMTP_PORT = 25
sendmail_path = / usr / sbin / sendmail -t -i
如果您查看上面的邮件错误,可能是什么原因引起的?我知道mydomain.com的spamfilter有一个例外。
有什么想法吗?
答案 0 :(得分:0)
好的配置让邮件本地就可以了 您可以使用sendmail包从localhost发送邮件,默认情况下,sendmail包随XAMPP提供。因此,如果您正在使用XAMPP,那么您可以轻松地从localhost发送邮件。
例如,您可以为gmail配置C:\xampp\php\php.ini
和c:\xampp\sendmail\sendmail.ini
以发送邮件。
在C:\xampp\php\php.ini
中查找extension=php_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
现在你完成了!!使用邮件功能创建php文件并从localhost发送邮件。
PS:不要忘记用你的id和密码替换上面代码中的my-gmail-id和my-gmail-password。另外,如果您从上面复制了设置,请不要忘记删除重复的密钥。例如,如果sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
文件中有另一个sendmail_path:php.ini
,则会在以下行中发表评论