如何让localhost发送电子邮件?

时间:2015-12-10 05:30:58

标签: php email xampp localhost

即使按照THIS更改php.ini和sedmail.php文件,我也无法通过localhost Xampp发送邮件。  我在sendmail.php文件中有什么电子邮件& PassWord给这里;

auth_username=   
auth_password=  

请有人帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

让我们按照一些步骤解决此问题。

<强> 1。确保启用错误报告并设置为报告所有错误(使用.php文件中的代码)

error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");

<强> 2。检查服务器的邮件日志

您的 localhost 应记录所有通过它发送电子邮件的尝试。这些日志的位置将是用户在日志下的根目录。内部将是服务器报告的错误消息(如果有),与您尝试发送电子邮件有关。

第3。确保在localhost上设置了邮件服务器

如果使用 XAMPP 在本地工作站上进行开发,则工作站上可能未安装电子邮件服务器。如果没有, PHP 默认情况下无法发送邮件。

您可以通过安装基本邮件服务器来解决此问题。对于Windows,您可以使用free Mercury Mail

您还可以使用 SMTP 发送电子邮件。请参阅此answer以重新检查如何执行此操作。

<强> 4。使用消息

检查mail()是否返回true或false

请使用以下代码,让我知道发生了什么。此代码将显示实际的错误消息,我们可以解决此问题。

替换

mail($to, $subject, $message, $headers);

$mailReturn = mail($to, $subject, $message, $headers);
print('<pre>');
print_r($mailReturn);
print('</pre>');
exit();

如果以上3个步骤完成但没有成功,请按照步骤4.让我知道此代码打印的内容。

<强> 5。用于从localhost发送邮件的SMTP设置(在php.ini中)

如果您使用 Gmail ,那么您很幸运。 Gmail 允许我们使用 SMTP ,前提是您必须使用自己的用户名密码对其进行身份验证。要使用 Gmail SMTP ,值如下所示:

//Set the hostname of the mail server
$mail->Host = "smtp.gmail.com";

//enable this if you are using gmail smtp, for mandrill app it is not required
//$mail->SMTPSecure = 'tls';

//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 25;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = "YOUR.ID@GMAIL.COM";
//Password to use for SMTP authentication
$mail->Password = "YOUR_PASSWORD";

或者,如果您不想使用 Gmail 帐户,我建议您在Mandrill创建一个帐户并获取 SMTP 主持人,用户名密码。我测试了gmail和mandrill,他们的工作非常好。

//Set the hostname of the mail server
$mail->Host = "smtp.mandrillapp.com";
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 25;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = "YOUR_REGISTER_EMAIL@MANDRILL.COM";
//Password to use for SMTP authentication
$mail->Password = "YOUR_PASSWORD";

确保检查所有变量值,并在需要时更改。

答案 1 :(得分:0)

您可以使用SMTP邮件发送库并尝试该功能从localhost发送邮件