与Migadu不兼容的PHPMailer

时间:2018-05-24 17:26:51

标签: php phpmailer

我正在使用Migadu邮件服务器和PHP Mailer来设置一个简单的联系表单。

这是PHP文件:

<?php

    require("includes/class.phpmailer.php");
    require("includes/class.smtp.php");

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $smtpHost = "smtp.migadu.com";
    $smtpUsername = "info@mywebsite.com";
    $smtpPassword = "mypassword";

    $to = 'info@mywebsite.com';

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPSecure = "tls";
    $mail->SMTPAuth = true;
    $mail->Port = 587;
    $mail->IsHTML(true);
    $mail->CharSet = "utf-8";

    $mail->Host = $smtpHost;
    $mail->Username = $smtpUsername;
    $mail->Password = $smtpPassword;

    $mail->From = $smtpUsername;
    $mail->FromName = $name;
    $mail->AddAddress($to);
    $mail->AddReplyTo($email);

    $mail->Subject = "Contact Form";

    $body = '<h1>Contact!</h1>';
    $body .= '<p><b>Name: </b>'.$name.'</p>';
    $body .= '<p><b>Email: </b>'.$email.'</p>';
    $body .= '<p><b>Message: </b>'.$message.'</p>';

    $mail->Body = $body;

    $sentStatus = $mail->Send();

    if($sentStatus){
        echo json_encode(['status' => 'ok']);
    }else{
        echo json_encode(['status' => 'error', 'errorType' => 'server']);
    }
?>

但它没有发送邮件。此外,它不会抛出任何错误,它只会永远停留在加载中。

1 个答案:

答案 0 :(得分:0)

它没有显示任何错误,因为您没有显示任何错误 - 请查看ErrorInfo属性。 PHPMailer提供的所有示例执行此操作,因此go look at them了解如何执行此操作。

它很可能不是“永远停留”,只是超时很长,这可能是因为你的ISP阻止出站SMTP,这是很常见的。 The troubleshooting guide告诉您如何诊断它。您的ISP可能有另一种发送电子邮件的方法,例如他们可能会提供自己的中继,因此您应该参考他们的文档。