使用 Mandrill PHPmailer 发送邮件不起作用

Sending mails using Mandrill PHPmailer is not working

我想使用 Mandrill 发送电子邮件。我正在定制我用来用 mandrill phpmailer 发送邮件的 phpmailer。 (在此处找到:http://help.mandrill.com/entries/23737696-How-do-I-send-with-PHPMailer-

require 'mandrillmailer/class.phpmailer.php';

$mail = new PHPMailer();

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.mandrillapp.com';                 // Specify main and backup server
$mail->Port = 587;                                    // Set the SMTP port
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'MANDRILL_USERNAME';                // SMTP username
$mail->Password = 'MANDRILL_APIKEY';                  // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = 'from@example.com';
$mail->FromName = 'Your From name';
$mail->AddAddress($to);  // Add a recipient


$mail->IsHTML(true);                                  // Set email format to HTML

$mail->Subject = $subject;
$mail->Body    = $message;
echo $mail->Subject;
//$mail->Send();
//$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->Send()) {
    echo 'hiii';
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}
else{
    echo 'hello';
    echo 'Message has been sent';
}
die('here');

我没有收到回复消息,即邮件是否已发送。我调试了它被 echo 语句卡住的地方。我可以看到 echo $mail->Subject; 之前的消息,但不能超过此时间。我猜 $mail->Send() 不工作,这就是为什么超出该范围的消息不显示并且电子邮件发送不工作的原因。

我该如何解决?

假设您已经设置了正确的授权,请通过要求自动加载程序而不是 phpmailer class 来尝试。这对我有用:

require 'mandrillmailer/PHPMailerAutoload.php';

或者,您可以尝试一些更简单的方法。有点像官方的Mandrill PHP client or a separate service like sendwithus.

首先检查 PHPMailer class 版本如果低于版本 5 则使用最新版本 5.2.9 我使用版本 5.2.9

解决了我的问题