无法使用gmail id从localhost发送电子邮件

时间:2013-04-03 03:21:59

标签: php email gmail

我正在使用Windows 7和xampp 1.8(打开水银邮件)并尝试使用gmail id从localhost发送电子邮件。但它不起作用。继承我的email.php:

<?php
$to="receiver.email@gmail.com";
$subject='the subject';
$message="dfdgh";
$headers='From:my.email@gmail.com'."\r\n".'Host:ssl://smtp.gmail.com'."\r\n".'Port:465'."\r\n".'Username:my.email@gmail.com'."\r\n".'Password:mypassword'."\r\n".'Reply-To:my.email@gmail.com'."\r\n".'X-Mailer:PHP/'.phpversion();
mail($to, $subject, $message, $headers);
?>

并且我改变了我更改的localhost php smtp配置

;SMTP = localhost
;smtp_port = 25
SMTP =ssl://smtp.gmail.com
smtp_port = 465
; For Win32 only.
;http://php.net/sendmail-from
;sendmail_from = postmaster@localhost
ssl://smtp.gmail.com
sendmail_from = my.email@gmail.com

执行代码但没有收到任何电子邮件后,我没有收到任何错误消息。

我做错了什么?

-Thanks。

2 个答案:

答案 0 :(得分:0)

Gmail SMTP已停止使用465SSL,因此请使用以下配置。

在它完美运行之前,现在它正在下面的配置。

SMTP =tls://smtp.gmail.com
smtp_port = 587
tls://smtp.gmail.com

使用587 SMTP_PORT并使用TLS

如果它不起作用,请将SMTP = tls行替换为SMTP = aspmx.l.google.com

答案 1 :(得分:0)

首先在

中调试它
mail($to, $subject, $message, $headers);

尝试写下条件以查看邮件是否正在发送

if(mail($to, $subject, $message, $headers)){
echo 'Success';
}
else{
echo 'Failed';
}