PHP на GoDaddy Linux Shared пытается отправить через SMTP GMAIL - PullRequest
8 голосов
/ 26 марта 2011

Я пробовал КАЖДЫЙ отдельный скрипт / код / ​​метод, размещенный на StackOverflow и других сайтах для этого, но безуспешно. Я хостинг на GoDaddy. Я настроил учетную запись Google App, настроил все необходимое для MX Records (для этого использовал инструмент GoDaddy) и даже попытался отправить некоторые электронные письма из интерфейса GMAIL для моего сайта, а также через SMTP-терминал в одном из моих Unix машины. Все заработало.

ОДНАКО, когда я пытаюсь использовать PHP, это не так! Это как GoDaddy как-то его блокирует?

Я всегда получаю:

SMTP -> ОШИБКА: не удалось подключиться к сервер: соединение отказано (111) SMTP Ошибка: не удалось подключиться к узлу SMTP. Ошибка почтовой программы: ошибка SMTP: не удалось подключиться к узлу SMTP.

Вот код, который я использую для PHPMailer:

<html>
    <head>
        <title>PHPMailer - SMTP (Gmail) advanced test</title>
    </head>
    <body>
    <?php
    require_once('../class.phpmailer.php');
    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

    $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

    $mail->IsSMTP(); // telling the class to use SMTP

    try {
        $mail->Host       = "smtp.gmail.com"; // SMTP server
        $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
        $mail->SMTPAuth   = true;                  // enable SMTP authentication
        $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
        $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
        $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
        $mail->Username   = "MYFROMADDRESSHERE";  // GMAIL username
        $mail->Password   = "MYFROMPASSWORDHERE";            // GMAIL password
        $mail->AddReplyTo('MYFROMADDRESSHERE', 'Sender Name');
        $mail->AddAddress('TESTTOADDRESSHERE', 'Recipient Name');
        $mail->SetFrom('MYFROMADDRESSHERE', 'Sender Name');
        $mail->AddReplyTo('MYFROMADDRESSHERE', 'Sender Name');
        $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
        $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
        $mail->MsgHTML(file_get_contents('contents.html'));
        $mail->AddAttachment('images/phpmailer.gif');      // attachment
        $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
        $mail->Send();
        echo "Message Sent OK</p>\n";
    } catch (phpmailerException $e) {
        echo $e->errorMessage(); //Pretty error messages from PHPMailer
    } catch (Exception $e) {
        echo $e->getMessage(); //Boring error messages from anything else!
    }
    ?>
</html>

Спасибо!

Ответы [ 11 ]

0 голосов
/ 22 января 2014

Я не поддерживаю Godaddy, потому что они обычно отстой, но это работает для меня.Они могли бы обновить там свои системы.

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";

$mail->Port = 587; // or 587 or 465
$mail->IsHTML(true);
$mail->Username = "stuff@gmail.com";
$mail->Password = "password";
$mail->setFrom('gmail_account@gmail.com', 'Someone's name');
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress("gmail_account@gmail.com");
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
        return false;
    } else {
        return true; 
    }
}

О, я тоже хочу всех, мне нет дела до ООП !!!

...