繁体   English   中英

使用GMAIL邮件服务器从PHP运行XAMMP的localhost发送电子邮件

[英]Send email from localhost running XAMMP in PHP using GMAIL mail server

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

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

是给我答案的链接:

[安装]“ 假的sendmail for Windows ”。 如果您不使用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 

要访问受双因素验证保护的Gmail帐户,您需要创建特定应用程序的密码 来源

在php.ini文件中,取消注释这个

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

并在sendmail.ini中

smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
auth_username=your@gmail.com
auth_password=yourpassword
force_sender=your@gmail.com
hostname=localhost

配置这个...它会工作......它对我来说很好。

谢谢。

[sendmail]

smtp_server=smtp.gmail.com  
smtp_port=25  
error_logfile=error.log  
debug_logfile=debug.log  
auth_username=myemail@gmail.com 
auth_password=gmailpassword  
force_sender=myemail@gmail.com

需要验证邮件的用户名和密码,然后才能成功从localhost发送邮件

不要忘记为您的Gmail帐户生成第二个密码。 您将在代码中使用此新密码。 读这个:

https://support.google.com/accounts/answer/185833

在“如何生成应用密码”部分下,单击“应用密码”,然后在“选择应用”下选择“邮件”,选择您的设备并单击“生成”。 您的第二个密码将打印在屏幕上。

最简单的方法是使用PHPMailer和Gmail SMTP。 配置如下所示。

require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->isSMTP();                            
$mail->Host = 'smtp.gmail.com';            
$mail->SMTPAuth = true;                     
$mail->Username = 'Email Address';          
$mail->Password = 'Email Account Password'; 
$mail->SMTPSecure = 'tls';               
$mail->Port = 587;                  

示例脚本和完整源代码可以在这里找到 - 如何从PHP中的Localhost发送电子邮件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM