一尘不染

使用GMAIL邮件服务器从在PHP中运行XAMMP的本地主机发送电子邮件

php

我尝试使用php
mail()函数将电子邮件从本地主机发送到我的yahoo电子邮件帐户,返回消息说我成功发送了电子邮件,但没有收到任何电子邮件。我一直在阅读并尝试许多所谓的“简单方法”来发送电子邮件,但结果令人失望,它们都不适合我。以下是代码,配置和错误消息。有人可以启发我吗?谢谢。

PHP代码

<?php
$to      = 'myemail@yahoo.com';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: myemail@egmail.com' . "\r\n" .
           'Reply-To: myemail@gmail.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully!';
} else {
    die('Failure: Email was not sent!');
}
?>

php.ini的配置(我正在使用Gmail邮件服务器)

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = myemail@gmail.com
sendmail_path =“ \” C:\ xampp \ sendmail \ sendmail.exe \“ -t”

sendmail.ini的配置

smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl = tls
error_logfile = error.log
debug_logfile = debug.log
auth_username=myemail@gmail.com
auth_password = mypassword
force_sender=myemail@gmail.com

sendmail错误日志中带有端口587的错误消息

13/10/02 13:36:41:必须首先发出STARTTLS命令。k4sm129639pbd.11-gsmtp


阅读 409

收藏
2020-05-26

共1个答案

一尘不染

是给我答案的链接:

[安装]“ 用于Windows的伪sendmail
”。如果您不使用XAMPP,则可以在这里下载:http :
//glob.com.au/sendmail/sendmail.zip

[Modify] the php.ini file to use it (commented out the other lines):

[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25

; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t

-i”).
sendmail_path = “C:\xampp\sendmail\sendmail.exe -t”

(忽略“仅Unix”位,因为我们实际上正在使用sendmail)

然后,您必须在安装sendmail的目录中配置“ sendmail.ini”文件:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com
2020-05-26