【问题标题】:HOW TO: Send mail with PHPMailer class or PHPMailerAutoload?如何:使用 PHPMailer 类或 PHPMailerAutoload 发送邮件?
【发布时间】:2016-06-16 16:30:52
【问题描述】:

first:我正在准备使用 PHPMailer 类发送不带附件的简单电子邮件

second:我的代码无法使用 要求('../libs/PHPMailer/class.phpmailer.php'); //这里给我一个致命错误

第三个:我已经尝试过使用 PHPMailerAutoload 类

require('../libs/PHPMailer/PHPMailerAutoload.php'); //在这里它不会抛出任何错误,但不会向我发送任何内容

<?php
require('../libs/PHPMailer/class.phpmailer.php');

echo $_POST['InputName'];
echo $_POST['InputEmail'];
echo $_POST['InputMessage'];

if(!isset($_POST['InputName']) || 
    !isset($_POST['InputEmail']) || 
    !isset($_POST['InputMessage'])) {

    died('We are sorry, but there appears to be a problem with the form you submitted.');
}

$inputName = $_POST['InputName'];  
$inputEmail = $_POST['InputEmail'];  
$inputMessage = $_POST['InputMessage']; 
$error_message = "";

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

$mail->IsSMTP();
$mail->Host       = 'mail.domain.com.mx';

$mail->SMTPSecure = 'tls';
$mail->Port       = 465;
$mail->SMTPDebug  = 1;
$mail->SMTPAuth   = true;

$mail->Username   = 'contact@domain.com.mx';
$mail->Password   = 'mypassword';

$mail->SetFrom($inputEmail, 'something here');
// $mail->AddReplyTo('no-reply@mycomp.com','no-reply');
$mail->Subject    = 'CONTACT '.$inputEmail;
$mail->MsgHTML($inputMessage);

$mail->AddAddress('contact@domain.com.mx', 'contact');
$mail->AddAddress('other@domain.com.mx', 'other'); /* ... */

// $mail->AddAttachment($fileName);
$mail->send(); 

?>

【问题讨论】:

  • 你在运行本地主机吗?如果是这样的话。激活 smtp。你可以配置一个假邮件
  • +约书亚·贝拉米诺。感谢您的回答,但几分钟前我可以解决这个问题。我的问题是在 smtp 凭据中。我对 TLS 和 SSL 和 PORT 感到困惑。即使我在 localhost 中运行,我也不必配置任何东西。罕见的问候
  • 您的代码基于一个过时的示例 - 从 PHPMailer 提供的代码示例开始,并确保您使用的是最新版本。
  • @Synchro PhpMailer 不是一个过时的库并且该示例是发送简单邮件的典型方式
  • 我知道它没有过时 - 我是维护者! 您的示例代码已过时 - 使用 PHPMailer 提供的示例。

标签: php phpmailer


【解决方案1】:

您的代码甚至不会尝试检测故障。您不启用例外:

$mail=new PHPMailer();

...你没有验证结果:

$mail->send();

我建议你启用例外:

$mail=new PHPMailer(true);

...或者至少验证消息是否被服务器接受:

if (!$mail->send()) {
   // Log to file and warn user
}

此外,PHPMailer 是您应该尝试的几个调试功能。请检查SMTPDebugDebugoutput 属性。

【讨论】:

  • 感谢阿尔瓦罗·冈萨雷斯。我已经写了最后一个验证。真正的标志我会尝试的。感谢调试建议我在 PHP 中是全新的。问候!
猜你喜欢
  • 2020-04-05
  • 2013-11-29
  • 1970-01-01
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
相关资源
最近更新 更多