xampp php 发送邮件

Posted

技术标签:

【中文标题】xampp php 发送邮件【英文标题】:xampp php send mail 【发布时间】:2012-12-15 14:12:32 【问题描述】:

我在 *** 和 google 上搜索了如何设置 xamppmercuryphp 代码以使用 window server 2008 r2 发送邮件。

通过教程发现我可以使用Mail::factorysmtp.gmail.com 发送邮件,也可以使用Mercury 发送邮件(File -> 发送邮件消息),my_email_address@my_domain_name.com 在 Mercury 中注册。所以我尝试使用php 代码发送邮件。但在我的情况下它仍然不起作用。

这是我的配置:

C:/xampp/apache/php.ini

sendmail_path = "\xampp\sendmail\sendmail.exe -t -i"

sendmail.ini

smtp_server=my_domain_name.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=my_email_address@my_domain_name.com
auth_password=my_password
force_sender=my_email_address@my_domain_name.com
hostname=my_domain_name.com

代码 php

$to = $email;
$subject = "Hello";
$message = "How are you ?";
$from = "my_email_address@my_domain_name.com";
$headers = "From:" . $from;
$result = mail($to,$subject,$message,$headers);

if($result)
    echo "Mail Sent." . $result;

else
    echo "Failure." . $result;

我签入C:\xampp\sendmail\debug.log 并收到错误

--- MESSAGE END ---
12/12/31 06:46:04 ** Connecting to my_domain_name.com:25
12/12/31 06:46:06 ** Disconnected.
12/12/31 06:46:06 ** Disconnected.
12/12/31 06:46:06 ** Disconnected.
12/12/31 06:46:06 ** Socket Error # 10061<EOL>Connection refused.

我哪里错了?你能帮帮我吗?

【问题讨论】:

您的 debug.log Socket Error [..] Connection refused 表明,没有 SMTP 服务器实际上在回复 my_domain_name.com:25 确保有一个 smtp 服务器启动并运行,并且端口 25 没有被防火墙阻止。 @MichelFeldheim 谢谢你的回答,我检查了我的窗口防火墙,SMTP 端口 25 在入站规则中是允许的,但仍然无法正常工作。我如何知道 smtp 服务器已启动并正在运行? 【参考方案1】:

大部分时间是服务器的ip问题。 因为大多数提供商不允许来自动态 ips 的流量,来自没有上帝 spf 记录的服务器...

一种解决方案是,创建一个 gmail 帐户,然后通过 gmail 或内部交换服务器转发所有流量。 XAMPP Sendmail using Gmail account

【讨论】:

感谢您的回答。我可以使用我的 gmail 帐户发送邮件,但不想使用 gmail 帐户发送邮件。我想为我的域创建新帐户,例如 support@my_domain_name.com 来发送邮件。 您在哪里托管您的域?您是否已经拥有电子邮件提供商?在那里创建一个帐户并为您使用 smtp 登录数据 sendmail.ini 感谢您的回答。这是否意味着我需要为我的域购买电子邮件?我在 Mercury 中为我的域(例如:support@my_domain_name.com)创建了一封电子邮件,并使用 Mercury(文件->发送邮件消息)成功地从这个电子邮件地址发送邮件到一些雅虎邮件。那么为什么我需要为我的域购买电子邮件呢?请解释一下,我很感激。 我从 www.domain.com 购买了一个域名 因为不可能在主服务器上运行电子邮件服务器。最好在您的域中使用 Google als。【参考方案2】:

请按照以下链接中的说明进行操作:-

http://system66.blogspot.com/2010/01/how-to-send-mail-from-localhost-with.html

【讨论】:

感谢您的回答。我已经像您上面的链接一样进行了配置,但它不起作用

以上是关于xampp php 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

未发送来自 XAMPP 上 PHP 的邮件

如何使用php从xampp发送具有匿名名称的电子邮件

PHP - 使用 xampp localhost 发送邮件

php localhost邮件没有使用xampp发送

无法使用 xampp 从 gmail 发送邮件(使用 php 脚本)

发送电子邮件 - MAC 中的 PHP XAMPP