PHPMailer говорит, что не может подключиться к узлу SMTP

В течение последних 2 дней я пытался заставить PHP-скрипт отправлять электронную почту, и он, похоже, не работает. Сначала я попробовал обычную функцию php mail, затем PHPMailer, а затем Swiftmailer.

Я пытался использовать как учетные записи Gmail, так и SMTP, а также учетную запись электронной почты и SMTP моего интернет-провайдера, но ни одна из них не сработала. Я попытался пропинговать оба SMTP-сервера, и они работали нормально, а telnet отвечал правильно. На telnet smtp.gmail.com 587 он сказал 220 smtp.gmail.com ESMTP q125sm9630397wmd.19 - gsmtp. Я пробовал оба порта 465 и 587 и комбинации с TLS и SSL. Для gmail я также отредактировал свою учетную запись gmail, чтобы убедиться, что она разрешена для менее безопасных устройств, разрешить использование imap и т. Д.

Я запускаю apache на своем компьютере в Windows 7. Я перенаправил порты 465 и 587. Я уже прошел страницу устранения неполадок PHPMailer. Я также отключил брандмауэр для тестирования, но это не помогло.

Я правильно отредактировал настройки php.ini, а также убедился, что; был удален из расширения = php_openssl.dll.

Это мой код для PHPMailer, основанный на примере PHPMailer, предоставленном для Gmail (я отредактировал SMTP, учетные записи и пароли):

require '/PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.x.x';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '[email protected]';                 // SMTP username
$mail->Password = 'password';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]');     // Add a recipient

$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
$checkup = 'Something went wrong';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
$checkup = 'Success';
}

Когда я использую это в SMTP моего интернет-провайдера с адресом электронной почты интернет-провайдера, я получаю эту ошибку:

2016-05-06 12:27:04 Connection: opening to smtp.x.x:587, timeout=300, options=array ( ) 2016-05-06 12:27:04 
Connection: opened 2016-05-06 12:27:04  
SERVER -> CLIENT: 220-smtp6.mnd.mail.iss.as9143.net ESMTP Fri, 06 May 2016 14:27:07 +0200 220-Sending spam or unsolicited commercial e-mail to this server is strictly 220-prohibited by our NO UBE / NO UCE policy. Abuse will be prosecuted and/or 220 charged per attempted recipient at international postal rates. 2016-05-06 12:27:04 
CLIENT -> SERVER: EHLO localhost 2016-05-06 12:27:04    
SERVER -> CLIENT: 250-smtp6.mnd.mail.iss.as9143.net Hello (MY IP ADDRESS, edited out for security) 250-SIZE 31457280 250-8BITMIME 250-PIPELINING 250-STARTTLS 250 HELP 2016-05-06 12:27:04
CLIENT -> SERVER: STARTTLS 2016-05-06 12:27:04  SERVER -> CLIENT: 220 TLS go ahead 2016-05-06 12:27:04  SMTP Error: Could not connect to SMTP host. 2016-05-06 12:27:04 CLIENT -> SERVER: QUIT 2016-05-06 12:27:04  
SERVER -> CLIENT: MIA�x�����dqi7��=���&J��3ʚ���ă�S�_��Z�$��NH�؏�|��m>[z@�f�g��G����.pAGD�8Q�:��J���'L�a8%��v�(*YC��u�ФW�s����l�#6F�w���� ���9�|�\%�!�����B=:��/U��m��bc\�cڊ��4��d�-U��seEZ�PC��Q�Ai`JㅇK�U�]h���H�v���i���cF M΂�x ���}���V�HR�c�!��,`�   *)�$Oȕ�EMƍ�&B�+���u9A�R��j'[7��y����a ����N���� 2016-05-06 12:27:04    
SMTP ERROR: QUIT command failed: MIA�x�����dqi7��=���&J��3ʚ���ă�S�_��Z�$��NH�؏�|��m>[z@�f�g��G����.pAGD�8Q�:��J���'L�a8%��v�(*YC��u�ФW�s����l�#6F�w���� ���9�|�\%�!�����B=:��/U��m��bc\�cڊ��4��d�-U��seEZ�PC��Q�Ai`JㅇK�U�]h���H�v���i���cF  M΂�x ���}���V�HR�c�!��,`�   *)�$Oȕ�EMƍ�&B�+���u9A�R��j'[7��y����a ����N���� 2016-05-06 12:27:04    
Connection: closed 2016-05-06 12:27:04  
SMTP connect() failed. Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Как вы видите, он подключается, SMTP-сервер, кажется, узнает меня по IP и говорит «вперед», а затем внезапно происходит сбой. Я искал повсюду и совершенно не понимаю, как мне это исправить.

Когда я использую SMTP gmail + учетную запись gmail, он говорит это:

2016-05-06 17:42:40 Connection: opening to smtp.gmail.com:587, timeout=300, options=array ( ) 2016-05-06 17:42:40   
Connection: opened 2016-05-06 17:42:40  
SERVER -> CLIENT: 220 smtp.gmail.com ESMTP 8sm9564071wms.14 - gsmtp 2016-05-06 17:42:40 CLIENT -> SERVER: EHLO localhost 2016-05-06 17:42:40    
SERVER -> CLIENT: 250-smtp.gmail.com at your service, [MY IP ADDRESS] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250 SMTPUTF8 2016-05-06 17:42:40   
CLIENT -> SERVER: STARTTLS 2016-05-06 17:42:40  
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 2016-05-06 17:42:40  SMTP Error: Could not connect to SMTP host. 2016-05-06 17:42:40
CLIENT -> SERVER: QUIT 2016-05-06 17:42:40  
SERVER -> CLIENT: MIA��b8   ��4}�5KO�q0
2016-05-06 17:42:40 Connection: opening to smtp.gmail.com:587, timeout=300, options=array ( ) 2016-05-06 17:42:40   
Connection: opened 2016-05-06 17:42:40  
SERVER -> CLIENT: 220 smtp.gmail.com ESMTP 8sm9564071wms.14 - gsmtp 2016-05-06 17:42:40 CLIENT -> SERVER: EHLO localhost 2016-05-06 17:42:40    
SERVER -> CLIENT: 250-smtp.gmail.com at your service, [MY IP ADDRESS] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250 SMTPUTF8 2016-05-06 17:42:40   
CLIENT -> SERVER: STARTTLS 2016-05-06 17:42:40  
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 2016-05-06 17:42:40  SMTP Error: Could not connect to SMTP host. 2016-05-06 17:42:40
CLIENT -> SERVER: QUIT 2016-05-06 17:42:40  
SERVER -> CLIENT: MIA��b8   ��4}�5KO�q0$&��B.r��Q���P��=���r$�%➽,��X�"�c�5ȭ�D�C�b���B��@��T�?bڌ_�*܋����X1`T%_��� �QQ����y}]OO�����8d�R|�$�����b�����[� ,��5�[*�H����5�l���B����a����f��f���Pj��c@>����vk+Cq�r*��-�4���`W勱A``A�S ,�w:�q�1�����.����*�',ȁ��iH�T0�E�/1W��  |�i4�{�Gk�J�n,US�F�|���|L����n}Qp� 2016-05-06 17:42:40  
SMTP ERROR: QUIT command failed: MIA��b8    ��4}�5KO�q0$&��B.r��Q���P��=���r$�%➽,��X�"�c�5ȭ�D�C�b���B��@��T�?bڌ_�*܋����X1`T%_��� �QQ����y}]OO�����8d�R|�$�����b�����[� ,��5�[*�H����5�l���B����a����f��f���Pj��c@>����vk+Cq�r*��-�4���`W勱A``A�S ,�w:�q�1�����.����*�',ȁ��iH�T0�E�/1W��  |�i4�{�Gk�J�n,US�F�|���|L����n}Qp� 2016-05-06 17:42:40  
Connection: closed 2016-05-06 17:42:40  SMTP connect() failed.  Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
amp;��B.r��Q���P��=���r$�%➽,��X�"�c�5ȭ�D�C�b���B��@��T�?bڌ_�*܋����X1`T%_��� �QQ����y}]OO�����8d�R|�$�����b�����[� ,��5�[*�H����5�l���B����a����f��f���Pj��c@>����vk+Cq�r*��-�4���`W勱A``A�S ,�w:�q�1�����.����*�',ȁ��iH�T0�E�/1W�� |�i4�{�Gk�J�n,US�F�|���|L����n}Qp� 2016-05-06 17:42:40 SMTP ERROR: QUIT command failed: MIA��b8 ��4}�5KO�q0
2016-05-06 17:42:40 Connection: opening to smtp.gmail.com:587, timeout=300, options=array ( ) 2016-05-06 17:42:40   
Connection: opened 2016-05-06 17:42:40  
SERVER -> CLIENT: 220 smtp.gmail.com ESMTP 8sm9564071wms.14 - gsmtp 2016-05-06 17:42:40 CLIENT -> SERVER: EHLO localhost 2016-05-06 17:42:40    
SERVER -> CLIENT: 250-smtp.gmail.com at your service, [MY IP ADDRESS] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250 SMTPUTF8 2016-05-06 17:42:40   
CLIENT -> SERVER: STARTTLS 2016-05-06 17:42:40  
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 2016-05-06 17:42:40  SMTP Error: Could not connect to SMTP host. 2016-05-06 17:42:40
CLIENT -> SERVER: QUIT 2016-05-06 17:42:40  
SERVER -> CLIENT: MIA��b8   ��4}�5KO�q0$&��B.r��Q���P��=���r$�%➽,��X�"�c�5ȭ�D�C�b���B��@��T�?bڌ_�*܋����X1`T%_��� �QQ����y}]OO�����8d�R|�$�����b�����[� ,��5�[*�H����5�l���B����a����f��f���Pj��c@>����vk+Cq�r*��-�4���`W勱A``A�S ,�w:�q�1�����.����*�',ȁ��iH�T0�E�/1W��  |�i4�{�Gk�J�n,US�F�|���|L����n}Qp� 2016-05-06 17:42:40  
SMTP ERROR: QUIT command failed: MIA��b8    ��4}�5KO�q0$&��B.r��Q���P��=���r$�%➽,��X�"�c�5ȭ�D�C�b���B��@��T�?bڌ_�*܋����X1`T%_��� �QQ����y}]OO�����8d�R|�$�����b�����[� ,��5�[*�H����5�l���B����a����f��f���Pj��c@>����vk+Cq�r*��-�4���`W勱A``A�S ,�w:�q�1�����.����*�',ȁ��iH�T0�E�/1W��  |�i4�{�Gk�J�n,US�F�|���|L����n}Qp� 2016-05-06 17:42:40  
Connection: closed 2016-05-06 17:42:40  SMTP connect() failed.  Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
amp;��B.r��Q���P��=���r$�%➽,��X�"�c�5ȭ�D�C�b���B��@��T�?bڌ_�*܋����X1`T%_��� �QQ����y}]OO�����8d�R|�$�����b�����[� ,��5�[*�H����5�l���B����a����f��f���Pj��c@>����vk+Cq�r*��-�4���`W勱A``A�S ,�w:�q�1�����.����*�',ȁ��iH�T0�E�/1W�� |�i4�{�Gk�J�n,US�F�|���|L����n}Qp� 2016-05-06 17:42:40 Connection: closed 2016-05-06 17:42:40 SMTP connect() failed. Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

В режиме отладки 4 он говорит то же самое (это показывает только часть огромной текстовой стены, которую вы получаете):

CLIENT -> SERVER: STARTTLS 2016-05-06 17:55:10 
SMTP -> get_lines(): $data is "" 2016-05-06 17:55:10    
SMTP -> get_lines(): $str is "220 TLS go ahead " 2016-05-06 17:55:10    
SERVER -> CLIENT: 220 TLS go ahead 2016-05-06 17:55:10  SMTP Error: Could not connect to SMTP host. 2016-05-06 17:55:10 
CLIENT -> SERVER: QUIT 2016-05-06 17:55:10  
SMTP -> get_lines(): $data is "" 2016-05-06 17:55:10    
SMTP -> get_lines(): $str is "MIA " 2016-05-06 17:55:10 
SMTP -> get_lines(): $data is "MIA " 2016-05-06 17:55:10

Он говорит, что готов запустить TLS, а затем он говорит, что соединение снова не удалось. Я прочитал много тем об этом в stackoverflow, но ни одно из предложенных там решений и опций не сработало. У кого-нибудь есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос