Невозможно отправить почту из gmail с помощью xampp (используя php-скрипт)

Я использую XAMPP в Windows 7, но не могу отправить почту с помощью php

Часть файла php.ini выглядит следующим образом:

SMTP = smtp.gmail.com
smtp_port = 25
sendmail_from = hima***ivast***@gmail.com
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
mail.add_x_header = Off

Часть файла sendmail.ini выглядит следующим образом:

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=hima***ivast***@gmail.com
auth_password=************
force_sender=hima***ivast***@gmail.com

Пожалуйста, помогите мне найти ошибку.


person user3414154    schedule 13.03.2014    source источник


Ответы (1)


Если у вас включен SSL в учетной записи Gmail, номер порта — 587. Я полагаю, что другой — 465, согласно справочным документам: https://support.google.com/mail/answer/78775?hl=en

Если вы пытались настроить SMTP-сервер на порт 465 (с SSL) и порт 587 (с TLS), но по-прежнему испытываете проблемы с отправкой почты, попробуйте настроить SMTP на использование порта 25 (с SSL).

Возможно, вам также следует использовать блок try/catch — если sendmail завершается с ошибкой, вы можете использовать print_r или var_dump, чтобы увидеть, что содержит сообщение об исключении.

Должен признаться, я никогда не использовал sendmail напрямую; Я нашел библиотеку Rmail намного проще в использовании:

<?php
    require_once( ROOT . DS . "libs" . DS . "Rmail" . DS . "Rmail.php" );

    // Instantiate a new HTML Mime Mail object
    $mail = new Rmail();

    $mail->setSMTPParams($host = 'smtp.gmail.com', $port = 587, $helo = null, $auth = true, $user = 'gmail address', $pass = 'password');

    // Set the From and Reply-To headers
    $mail->setFrom( "Proper Name <send from email address>" );
    $mail->setReturnPath( "reply email address" );

    // Set the Subject
    $mail->setSubject( 'Email subject/title' );

    $html = 'you email message content';

    // Create the HTML e-mail
    $mail->setHTML( $html );

    // Send the e-mail
    $result = $mail->send( array( 'target email address' ) );
?>

Я могу отследить библиотеку где-нибудь, если вы предпочитаете использовать что-то вроде приведенного выше фрагмента.

person Tieson T.    schedule 13.03.2014
comment
Все три порта дают одинаковый результат. - person user3414154; 13.03.2014
comment
Подтвердили ли вы, что можете войти в систему с учетными данными, которые вы используете? - person Tieson T.; 13.03.2014
comment
Да, я могу войти с учетными данными. Есть ли ошибка в моем коде? - person user3414154; 14.03.2014