php邮件功能不想工作
Posted
技术标签:
【中文标题】php邮件功能不想工作【英文标题】:php mail function doesn't want to work 【发布时间】:2015-08-14 05:53:43 【问题描述】:我知道你经常讨论这个话题。我整个星期都在阅读这个网站和其他网站的教程。 我想让邮件功能正常工作,但它并不真正想要。我的操作系统是windows 8。我使用wamp作为apache,我尝试了所有通过smtp发送电子邮件的方法。我试过gmail和雅虎。我修改了 sendmail.ini 和 php.ini 一百次。我尝试了 phpmailer 类,它工作了一段时间,但是当我尝试在联系表单中实现时,它停止工作。现在它根本不工作:)。我也尝试了stunnel的东西,什么也没发生。现在我只是尝试整理一个简单的邮件功能来发送电子邮件,作为第一步。页面是空白的。它并没有真正给出任何错误,但我没有收到电子邮件。 这些是我目前的设置。
php.ini 文件:
[邮件功能]
;仅适用于 Win32。
SMTP =本地主机
smtp_port =25
;仅适用于 Win32。
; http://php.net/sendmail-from
sendmail_from =myemail@gmail.com
;仅适用于 Unix。您也可以提供参数(默认值:“sendmail -t -i”)。
sendmail_path ="\""c:\wamp\sendmail\sendmail.exe\" -t"
sendmail.ini 文件:
smtp_server=smtp.gmail.com
; smtp 端口(通常为 25)
smtp_port=587
auth_username=myemail@gmail.com
auth_password=密码
我输入了端口号 587,这是我在我阅读的最后一个主题中看到的。我希望它有帮助。我之前也试过25和465。 我的问题可能听起来很愚蠢。 是否有可能,我的 SMTP 连接会受到操作系统或 PC 防火墙的影响? 我刚开始学习知道php,我无法前进,直到我没有解决这个问题。 谢谢
【问题讨论】:
在 Windows 上,使用 PHP 发送邮件非常困难,因为您必须提供一个允许您发送邮件的 SMTP 服务器。此外,使用本机邮件功能需要您知道如何正确格式化邮件。我建议您暂时推迟邮寄部分,并继续通过不同的任务更好地学习 PHP - 或者使用本机函数替换为使用库。建议是 Swiftmail 或 PHPMailer。 是的..我试过 php mailer。它在一开始发送一个简单的邮件。但是当我尝试在联系表单源中实现它时,它给了我很多错误。是的..可能我会在接下来的几天内尝试解决它(只是因为我做不到这很烦人:p)如果不起作用,我会延迟一段时间。 【参考方案1】:你试过使用 PHPMailer 吗? 只需从https://github.com/PHPMailer/PHPMailer 下载即可 并将其包含在您的代码中,例如:
include ("PHPMailer/class.phpmailer.php"); include ("PHPMailer/class.smtp.php"); $subject = "your mail subject"; $body = "your mail body"; $headers = "From: " . $emailfrom; // Send mail $mail = new PHPMailer(); $mail->IsSMTP(); // telling the class to use SMTP // SMTP Configuration $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "smtp.gmail.com"; // SMTP server $mail->Username = "myemail@gmail.com"; $mail->Password = "your email password"; //$mail->Port = 465; // optional if you don't want to use the default $mail->From = "emailfrom@gmail.com"; $mail->FromName = "name of sender"; $mail->Subject = $subject; $mail->Msghtml($body); // Add as many as you want $mail->AddAddress($emailto); // If you want to attach a file, relative path to it //$mail->AddAttachment("images/phpmailer.gif"); // attachment $response= NULL; if(!$mail->Send()) $response = "Mailer Error: " . $mail->ErrorInfo; else $response = "Message sent!";
【讨论】:
以上是关于php邮件功能不想工作的主要内容,如果未能解决你的问题,请参考以下文章