Search code examples
phpcodeigniteremailgoogle-apps

Sending Email using godaddy smtp relay and PHPMailer on codeigniter


I am trying to reset password mails to client users. I am using a helper function which is called from the controller to send emails.

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);
}

Scenario 1 (Working): If the to address is my personal gmail.id eg. pradhansp@gmail.com than the email is delivered fine.

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

Scenario 2 (Not Working): If the to address is client domain info@domain.in than also i got the success message but mail is not delivered.

An important point here is that client domain is hosted on godaddy however for email he is using google apps for work. I already looked at the MX entries on the godaddy account and they are pointing correctly to google.

Priority | Mail Server

1 | ASPMX.L.GOOGLE.COM.


Solution

  • After a lot of attempts with different solutions I finally manage to get it working with the help of answer to following listed question. Thanks to @Vicm

    can't send email to addresses at my own domain

    Used following steps to Add the MX records into the cPanel:

    Enter into the cPanel

    1. Go the the cPanel Mail section
    2. Search for MX Entry Maintenance, sometimes there is no text above the icon.
    3. Select the related domain
    4. Change Email Routing to Remote Mail Exchanger.
    5. Add all the google MX records as they are in your domain configuration using the appropriate priority values. You can check the records here and priorities https://support.google.com/a/answer/174125
    6. Double check that Remote Mail Exchanger. is selected.

    With this setting I was able to send email using PHPMailer to an email account with in godaddy domain.

    Google App instructions talking about MX records https://support.google.com/a/answer/54717?hl=en