使用gmail xampp发送php电子邮件无法正常工作

时间:2015-10-21 14:47:41

标签: php gmail

但每当我提交执行文件时,电子邮件都不会发送到我的Gmail。

我已经在xampp中更改了php.ini,其中sendmail_path不以“;”开头。

在sendemail.ini中,我也将smtpp_server更改为smtp.gmail.com。以及到587的smtp端口(也试过了465)。最后我将auth_username和auth_password更改为我的电子邮件和pw。但代码仍然无效。

我正在使用Windows 8

<?php
mail('hello.3i@gmail.com', 'sample mail', 'sample content', 'From: freak@freakzoid.com');
?>

2 个答案:

答案 0 :(得分:0)

如果您想从localhost发送邮件,则应通过以下方式配置sendmail.ini。

  

您可以使用sendmail包sendmail从localhost发送邮件   包是在XAMPP中构建的。因此,如果您使用XAMPP,那么您可以   轻松从localhost发送邮件。

     

例如,您可以配置C:\xampp\php\php.ini和   c:\xampp\sendmail\sendmail.ini用于gmail发送邮件。在   C:\xampp\php\php.ini找到extension=php_openssl.dll并删除   从该行的开头分号以使SSL工作   ghost for localhost。

     

在php.ini文件中找到[mail function]并更改

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:不要忘记更换 my-gmail-id my-gmail-password   在上面的代码中。此外,如果您不要忘记删除重复的密钥   从上面复制设置。例如,注释以下行if   还有另一个 sendmail_path :   php.ini中的sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"   文件

     

还记得使用XAMMP控制面板重启服务器   这些变化生效。

答案 1 :(得分:0)

应该配置SMTP。 C:\xampp\sendmail\sendmail.iniC:\xampp\php\php.ini

此外,您可以轻松使用PHPMailer

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'user@example.com';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}