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邮件功能不想工作的主要内容,如果未能解决你的问题,请参考以下文章

来自本地主机的 XAMPP 和 PHP 邮件

如何在 php 中向数千名用户发送安全(爆炸)电子邮件?

PHPMailer 或 php 邮件功能 - 显示密件抄送地址

带有pdf附件和html消息的php邮件功能

PHP Mail停止工作[重复]

在XAMPP上使用PHP邮件功能[重复]