我的邮件没有被php函数mail()发送[重复]

Posted

技术标签:

【中文标题】我的邮件没有被php函数mail()发送[重复]【英文标题】:my mails are not getting sent by php funtion mail() [duplicate] 【发布时间】:2015-01-31 23:54:16 【问题描述】:

我正在尝试使用 php (xampp) 从我的 gmail 帐户发送电子邮件。 我在 *** 上搜索,当我得到东西时,我将 xampp 的文件 sendmail.ini 和 php.ini 更改为,

在 C:\xampp\php\php.ini 中,我删除了 extension=php_openssl.dll 行开头的分号,以使 SSL 为 gmail 的 localhost 工作。

在[邮件功能]下的php.ini文件中我改了

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = mukul.agrawal19@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=mukul.agrawal19@gmail.com
auth_password=my-gmail-password
force_sender=mukul.agrawal19@gmail.com

然后我写了一个简单的邮件函数

<?php
$to = 'mukulagrawal13@live.com';
$subject = 'Test email'; 
$message = "Hello World!\n\nThis is my first mail."; 
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed";
?>

然后通过我的浏览器进入此页面, 收到邮件失败的回声。

我看到了我的调试文件,我得到了

14/12/03 18:24:00 ** --- MESSAGE BEGIN ---
14/12/03 18:24:00 ** To: mukulagrawal13@live.com
14/12/03 18:24:00 ** Subject: Test email
14/12/03 18:24:00 ** From:mukul.agrawal19@gmail.com
14/12/03 18:24:00 ** Reply-To:mukul.agrawal19@gmail.com
14/12/03 18:24:00 ** 
14/12/03 18:24:00 ** Hello World!
14/12/03 18:24:00 ** 
14/12/03 18:24:00 ** This is my first mail.
14/12/03 18:24:00 ** --- MESSAGE END ---
14/12/03 18:24:01 ** Connecting to smtp.gmail.com:25
14/12/03 18:24:08 ** Connected.
14/12/03 18:24:08 << 220 mx.google.com ESMTP o17sm23150442pdn.33 - gsmtp<EOL>
14/12/03 18:24:08 >> EHLO Mukul-PC<EOL>
14/12/03 18:24:10 << 250-mx.google.com at your service, [223.186.182.29]<EOL>250-SIZE 35882577<EOL>250-8BITMIME<EOL>250-STARTTLS<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-CHUNKING<EOL>250 SMTPUTF8<EOL>
14/12/03 18:24:10 ** Authenticating as mukul.agrawal19@gmail.com
14/12/03 18:24:10 >> STARTTLS<EOL>
14/12/03 18:24:12 << 220 2.0.0 Ready to start TLS<EOL>
14/12/03 18:24:14 >> QUIT<EOL>

lots of codes in unknown language.

14/12/03 18:21:47 ** Disconnected.
14/12/03 18:21:47 ** Disconnecting from smtp.gmail.com:25
14/12/03 18:21:47 ** Disconnected.
14/12/03 18:21:47 ** Disconnected.
14/12/03 18:21:47 ** Connection Closed Gracefully.

【问题讨论】:

制作mail 命令打印警告(删除前面的@),然后看看你的error_log 如何查看错误日志? 查找 Apache 在您的系统上写入错误日志的位置并 cat/vi 它。 @mudasobwa 我更新了我的问题。 【参考方案1】:

使用您的真实电子邮件地址获取电子邮件。

$to = 'myeamilid@gmail.com';将其替换为您的真实电子邮件地址

【讨论】:

是的,我用的是我的正版..我改变它只是为了写在这里。 您尝试将 smtp_port 更改为 25 吗?? 是的..那也行不通 哦,如果你有解决方案,请告诉我!! Nope..其实我忘记重启服务器了。我重新启动它,现在我的配置实际上已经开始工作了。但是我的邮件失败了。

以上是关于我的邮件没有被php函数mail()发送[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用mail.php时没有邮件发送[重复]

带有 xampp 和 hMailServer 的 PHP mail() [重复]

无法理解为什么我不使用PHP mail()函数向我的主机邮件发送邮件[复制]

使用PHPMailer发送邮件

没有从PHP mail()方法接收电子邮件

我配置了我的 sendmail.ini 和 php.ini 但我无法使用 php 中的 mail() 函数发送电子邮件