无法在Windows 8上发送带有php邮件功能的电子邮件

时间:2015-06-03 03:33:50

标签: php windows email xampp

我在Windows 8上安装了wamp。

收到错误:

  

警告:mail()[function.mail]:无法连接到mailserver   “localhost”端口25,验证您的“SMTP”和“smtp_port”设置   php.ini或在第9行的C:\ wamp \ www \ mail.php中使用ini_set()

以下是简单的源代码:

<?php
// The message
$message = "Line 1\r\nLine 2\r\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Send
mail('caffeinated@example.com', 'My Subject', $message);
?>

我需要在Windows 8上通过php安装哪些软件才能发送电子邮件? sendmail,msmtp或ssmtp?

8 个答案:

答案 0 :(得分:11)

试试这个

image

配置此设置

php.ini

中的

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail.ini

中的

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
  

重要提示:如果sendmail_path中有另外php.ini sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

,则会在以下行中发表评论      

注意:在我的Windows 8.1

中经过测试并正常运行

答案 1 :(得分:5)

可能的解决方案。 See this question

对我来说,在localhost上配置邮件客户端非常困难。我也尝了很多次。后来我转向其他解决方案。

您可以在某些配置中使用SwiftMailerPhpMailer,也可以在零配置下尝试this tool

答案 2 :(得分:1)

另外,如果您使用的是Windows PC进行开发而不是作为生产服务器,那么我建议您不要在中设置 sendmail windows ,只需使用这个方便的工具。

Test Mail Server Tool (Its Free)

它将模拟一个电子邮件服务器,一旦任何脚本尝试发送电子邮件,它将拦截它并作为.eml文件为您打开,您可以在任何电子邮件阅读器中打开它,如outlook或{ {3}}

现在设置这个工具只是一个breez,你将永远感谢我保存,从而不必手动设置sendmail,我必须提到它是在Linux机器上。 ;)

答案 3 :(得分:1)

我建议使用水银(http://www.pmail.com/downloads_s3_t.htm - 用于Win32和NetWare系统的Mercury / 32邮件传输系统v4.74)。

这包含在XAMPP中,相当容易设置,您无需配置或(ab)使用电子邮件帐户。您可以在水银邮件日志窗口中看到整个smtp事务。

答案 4 :(得分:1)

在这里查看如何从php设置邮件的优秀答案:PHP mail form doesn't complete sending e-mail

答案 5 :(得分:1)

使用此功能工具: https://github.com/PHPMailer/PHPMailer

Mail()是难以使用的prette,此功能允许您使用电子邮件服务器STMP功能发送电子邮件。

阅读文档: https://github.com/PHPMailer/PHPMailer/blob/master/README.md

答案 6 :(得分:1)

您需要使用电子邮件服务器和php。 https://www.hmailserver.com/

答案 7 :(得分:0)

通过需要SMTP的服务器使用电子邮件发件人功能时 身份验证,您必须指定它。并设置主机,用户名和 密码(如果不是默认端口,可能是端口 - 25)。

例如,我通常使用与此类似的设置的PHPMailer:

//ini settings
ini_set("SMTP", "aspmx.l.google.com");
ini_set("sendmail_from", "YOURMAIL@gmail.com");

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com"; // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information (for testing)
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username"; //Your SMTP account username example
$mail->Password   = "password";        //Your SMTP account password example

您可以找到有关PHPMailer here的更多信息。

您可以通过视频登录wondows here上的SMTP配置方式。