在 codeigniter 上使用 godaddy smtp 中继和 PHPMailer 发送电子邮件

Sending Email using godaddy smtp relay and PHPMailer on codeigniter

我正在尝试重置密码邮件给客户端用户。我正在使用从控制器调用的辅助函数来发送电子邮件。

function submit_email($to,$subject,$message)
{
    $CI = get_instance();
    $CI->load->library('My_PHPMailer');

    $mail = new PHPMailer();
    $mail->Host       = "relay-hosting.secureserver.net";
    $mail->Port       = 465;
    $mail->SetFrom('info@domain.in', 'Saurabh Pradhan');
    $mail->AddReplyTo("info@domain.in","Saurabh Pradhan");
    $mail->Subject    = $subject;
    $mail->Body      = $message;
    $mail->AltBody    = "Plain text message";
    $destino = $to;
    $mail->AddAddress($destino, "John Doe");
    if(!$mail->Send()) {
        $data["message"] = "Error: " . $mail->ErrorInfo;
    } else {
        $data["message"] = "Message sent correctly!";
    }
var_dump($data);
}

场景 1(工作):如果收件人地址是我个人的 gmail.id 例如。 pradhansp@gmail.com 邮件送达正常。

array(1) { ["message"]=> string(23) "Message sent correctly!" }

情况 2(不工作):如果收件人地址是客户端域信息@domain.in,那么我也收到了成功消息,但邮件未送达。

这里很重要的一点是客户端域托管在 godaddy 上,但是对于电子邮件,他使用 google 应用程序进行工作。我已经查看了 godaddy 帐户上的 MX 条目,它们正确指向 google.

优先|邮件服务器

1 | ASPMX.L.GOOGLE.COM.

经过多次尝试不同的解决方案后,我终于设法在回答以下列出的问题的帮助下让它工作。感谢@Vicm

can't send email to addresses at my own domain

使用以下步骤将 MX 记录添加到 cPanel:

进入控制面板

  1. 转到 cPanel 邮件部分
  2. 搜索MX Entry Maintenance,有时上面没有文字 图标。
  3. Select 相关域名
  4. 将电子邮件路由更改为远程邮件交换器。
  5. 添加所有 google MX 记录,因为它们在您的域中 配置使用适当的优先级值。你可以检查 这里的记录和优先级 https://support.google.com/a/answer/174125
  6. 仔细检查远程邮件交换器。已选中。

通过此设置,我可以使用 PHPMailer 将电子邮件发送到 godaddy 域中的电子邮件帐户。

Google 关于 MX 记录的应用说明 https://support.google.com/a/answer/54717?hl=en