Phpmailer不在同一域上发送电子邮件

时间:2017-02-15 11:37:04

标签: php email phpmailer

我有一个网站,并有一个联系表格。我的代码如下:

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

$mail = new PHPMailer(true);

if (!$mail->addAddress('email@domain.com','email')) {
  die('Invalid email address');
}
$mail->isSMTP();
//$mail->SMTPAuth = true;
$mail->SMTPDebug = 2;
$mail->Host = 'localhost';
$mail->Subject = 'Subject';
$text = 'A mail...';
$mail->MsgHTML($text);
$mail->SetFrom($email);
//$mail->AddReplyTo($email,$name);

if ($mail->Send()){

如果用户输入他/她的邮件地址,如'address@gmail.com'或'add@hotmail.com',它会向该地址发送电子邮件。但如果我输入my@mydomain.com,则表示邮件已发送,但邮件没有到达。我正在寻找2天,但找不到合适的解决方案。我也试过这个:

我写了$ mail-> addAddress('mybackupmail @ gmail.com','email'),我将收到的邮件转发到mybackupmail@gmail.com到'mydomain@domain.com'。它也没有发送。我几乎尝试了一切。我的mx记录如下:

enter image description here

我应该更改这些设置吗?或者是其他问题?

我非常感谢任何帮助。

感谢您的关注,

2 个答案:

答案 0 :(得分:1)

你是否正在使用与godaddy托管的cpanel?我不知道如果这是“cpanel无处不在”,或只是在godaddy,但进入你的cpanel并寻找一个名为“MX Entry”的东西,然后将其从本地更改为远程。 Local告诉服务器“我们是这个cpanel中这个域的邮件引擎”,而远程告诉它“这个域的电子邮件是在cpanel之外处理的”...你的MX记录告诉我你正在使用工作区电子邮件,因此您需要MX Entry to remote :)

答案 1 :(得分:0)

函数示例使用phpmailer发送电子邮件

你只需更改路径包含

并更改参数

function send_email($to, $subject, $message, $html = TRUE)
{
    require_once APPPATH .'libraries/phpmailer/PHPMailerAutoload.php';

    $mail                   = new PHPMailer;

    $mail->isSMTP();

    $mail->SMTPDebug        = 0;
    $mail->Debugoutput      = 'html';

    $mail->Host             = 'smtp.gmail.com';
    $mail->SMTPAuth         = true;
    $mail->Username         = 'email@gmail.com';
    $mail->Password         = 'password';
    $mail->SMTPSecure       = 'tls';
    $mail->Port             = 587;

    $mail->isHTML($html);
    $mail->charSet          = 'UTF-8';


    $from = 'domain@gmail.com';

    $mail->setFrom($from, 'no-reply');
    $mail->addAddress($to, 'Information');

    $mail->Subject          = '=?UTF-8?B?'.base64_encode($subject).'?=';
    $mail->Body             = $message;
    $mail->AltBody          = '';

    if($mail->send())
    {
        return TRUE;
    }

    return FALSE;
}

OR示例:This example shows sending a message using PHP's mail() function