Não foi possível conectar o correio PEAR ao Gmail SMTP, falha ao conectar ao soquete
Fatos
Estou usando o PEAR Mail, quero usar o SMTP do gmail para enviar um email. Eu tenho Apache / 2.4.27 (Win64) PHP / 7.2.0beta3, PEAR 1.10.15, Mail 1.4.1, Net_SMTP 1.8.0, Net_Socket 1.2.2.
eu fui paraphp.ini
e acrescentouextension = php_openssl.dll
. oerror.log
não fornece erros relacionados ao SSL.
Aqui está o código
require_once "Mail.php";
$from = '<[email protected]>';
$to = '<[email protected]>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => 'mypassword'
));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<p>Message successfully sent!</p>');
}
O problema
Eu recebo este erro
Failed to connect to ssl://smtp.gmail.com:465 [SMTP: Failed to connect socket: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Unknown error) (code: -1, response: )]
e eu não tenho idéia do que fazer, pesquisei no Google, mas fiquei mais confuso.
Por favor, conselhos sobre como corrigir isso. Obrigado
Atualizar
Seguindo as instruções do symcbean, obtive os seguintes resultados:
bool(true)
array(5) {
[0]=> string(31) "alt3.gmail-smtp-in.l.google.com"
[1]=> string(26) "gmail-smtp-in.l.google.com"
[2]=> string(31) "alt4.gmail-smtp-in.l.google.com"
[3]=> string(31) "alt1.gmail-smtp-in.l.google.com"
[4]=> string(31) "alt2.gmail-smtp-in.l.google.com" }
IPV4 address = 64.233.188.27
If you've got this far without errors then problem is with your SSL config
Check you've got your cacerts deployed in one of the following locations
default_cert_file = C:\Program Files\Common Files\SSL/cert.pem
default_cert_file_env = SSL_CERT_FILE
default_cert_dir = C:\Program Files\Common Files\SSL/certs
default_cert_dir_env = SSL_CERT_DIR
default_private_dir = C:\Program Files\Common Files\SSL/private
default_default_cert_area = C:\Program Files\Common Files\SSL
ini_cafile =
ini_capath =
If all good so far, then this bit should work....
fsockopen
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in C:\Apache24\htdocs\phptest2.php on line 28
Warning: fsockopen(): Failed to enable crypto in C:\Apache24\htdocs\phptest2.php on line 28
Warning: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Unknown error) in C:\Apache24\htdocs\phptest2.php on line 28
bool(false) int(0) string(0) ""
Linha 28 é esta linhavar_dump(fsockopen("ssl://smtp.gmail.com", 465, $errno, $errstr, 3.0));
obrigado novamente
Atualização # 2
Pesquisei apenas "fsockopen (): a operação SSL falhou com o código 1." do primeiro aviso.
Terminaraqui . Mudei a porta de correio do AVG, como a resposta. O código do symcbean é executado sem erros, mas meu código respondeu commail error : authentication failure [SMTP: Invalid response code received from server (code: 534, response: 5.7.14 Please log in via your web browser and 5.7.14 then try again. 5.7.14 Learn more at 5.7.14 https://support.google.com/mail/answer/78754 c1sm1243434wre.84 - gsmtp)]
Então eu pesquisei no Googlecode: 534, response: 5.7.14
e finalizaçãoaqui, seguiu as instruções da primeira resposta do emgh3i, habilitou conexões menos seguras e permitiu acesso à minha conta do google
E está funcionando perfeitamente agora.