PHPMailer saying could not connect to SMTP host
<p>For the past 2 days I've been trying to get a PHP script to send an e-mail and it doesn't seem to work. First I've tried the normal php mail function, then PHPMailer and then Swiftmailer.</p>

<p>I've tried to use both gmail's accounts and SMTP and the email account and SMTP of my internet provider, none worked. I tried to ping both SMTP servers and they worked fine and telnet replied correctly as well. On telnet smtp.gmail.com 587 it said 220 smtp.gmail.com ESMTP q125sm9630397wmd.19 - gsmtp. I've tried both port 465 and 587 and combinations with tls and ssl. For gmail I also edited my gmail account to make sure it's allowed for less secure devices and to allow imap etc.</p>

<p>I'm running apache on my own pc on windows 7. I've forwarded ports 465 and 587. I've already gone through the troubleshooting page of PHPMailer. I also disabled the firewall for testing, but that didn't help.</p>

<p>I have edited the php.ini settings correctly and also made sure the ; was removed from extension=php_openssl.dll. </p>

<p>This is my code for PHPMailer based on the example PHPMailer provided for gmail (I edited out the SMTP, accounts and passwords):</p>

<pre><code>require '/PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

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

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

$mail-&gt;setFrom('x@x.x', 'Mailer');
$mail-&gt;addAddress('x@x.x');     // Add a recipient

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

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

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

<p>When I use that on my internet provider's SMTP with my internet provider email address I get this error:</p>

<pre><code>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 -&gt; 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 -&gt; SERVER: EHLO localhost 2016-05-06 12:27:04    
SERVER -&gt; 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 -&gt; SERVER: STARTTLS 2016-05-06 12:27:04  SERVER -&gt; 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 -&gt; SERVER: QUIT 2016-05-06 12:27:04  
SERVER -&gt; CLIENT: MIA�x�����dqi7��=���&amp;J��3ʚ���ă�S�_��Z�$��NH�؏�|��m&gt;[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ƍ�&amp;B�+���u9A�R��j'[7��y����a ����N���� 2016-05-06 12:27:04    
SMTP ERROR: QUIT command failed: MIA�x�����dqi7��=���&amp;J��3ʚ���ă�S�_��Z�$��NH�؏�|��m&gt;[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ƍ�&amp;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
</code></pre>

<p>As you can see it connects, the SMTP server seems to recognize me by IP and says 'go ahead' and then it suddenly fails. I've been looking everywhere and I'm completely clueless as to how I can fix it.</p>

<p>When I use gmail's SMTP + the gmail account it says this:</p>

<pre><code>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 -&gt; CLIENT: 220 smtp.gmail.com ESMTP 8sm9564071wms.14 - gsmtp 2016-05-06 17:42:40 CLIENT -&gt; SERVER: EHLO localhost 2016-05-06 17:42:40    
SERVER -&gt; 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 -&gt; SERVER: STARTTLS 2016-05-06 17:42:40  
SERVER -&gt; 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 -&gt; SERVER: QUIT 2016-05-06 17:42:40  
SERVER -&gt; CLIENT: MIA��b8   ��4}�5KO�q0$&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@&gt;����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$&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@&gt;����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
</code></pre>

<p>On debug mode 4 it says the same (this shows only a part of the huge text wall you get then):</p>

<pre><code>CLIENT -&gt; SERVER: STARTTLS 2016-05-06 17:55:10 
SMTP -&gt; get_lines(): $data is "" 2016-05-06 17:55:10    
SMTP -&gt; get_lines(): $str is "220 TLS go ahead " 2016-05-06 17:55:10    
SERVER -&gt; 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 -&gt; SERVER: QUIT 2016-05-06 17:55:10  
SMTP -&gt; get_lines(): $data is "" 2016-05-06 17:55:10    
SMTP -&gt; get_lines(): $str is "MIA " 2016-05-06 17:55:10 
SMTP -&gt; get_lines(): $data is "MIA " 2016-05-06 17:55:10
</code></pre>

<p>It says Ready to start TLS and then it says connection failed again. I've read a lot of topics about this on stackoverflow, but none of the solutions and options offered there has worked so far. Does anyone have any idea?</p>