PEAR Mail keine Verbindung zu Gmail SMTP, failed to connect to socket

Fakten

Bin ich mit PEAR Mail, ich will mit gmail SMTP zum senden einer E-mail. Ich habe Apache/2.4.27 (Win64) PHP/7.2.0beta3 -, BIRNEN-1.10.15, E-Mail 1.4.1, Net_SMTP 1.8.0, Net_Socket 1.2.2.

Ging ich zu php.ini und Hinzugefügt extension = php_openssl.dll. Die error.log gibt keine ssl-bezogene Fehler.

Hier ist der code

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>');
}

Das problem

Bekomme ich diesen Fehler

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: )]

und ich habe keine Ahnung, was zu tun ist, habe ich Gegoogelt aber ich habe mehr verwirrt.

Bitte beraten, wie dieses Problem zu beheben. Danke

Update

Folgenden symcbean die Anweisungen, die ich erhielt die folgenden Ergebnisse :

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) "" 

Linie 28 ist diese Zeile var_dump(fsockopen("ssl://smtp.gmail.com", 465, $errno, $errstr, 3.0));

Nochmals vielen Dank

Update #2

Googelte ich einfach mal "fsockopen(): SSL-Vorgang ist fehlgeschlagen mit Fehlercode 1." die erste Warnung.

Ende bis hier . Ich habe die E-mail-port der AVG, wie die Antwort. symcbean code ohne Fehler ausgeführt, aber mein code antwortete mit
mail 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)]

Also googelte ich code: 534, response: 5.7.14 - und Ende-bis hier, folgte den Anweisungen der ersten Antwort von emgh3i, aktiviert weniger gesicherte verbindungen und erlaubt den Zugriff auf mein google-Konto

Und seine arbeiten nun perfekt.

  • Sie müssen versuchen, mit einigen Kommandozeilen-tools erste. Überprüfen Sie openssl client auf, wie zum herstellen einer Verbindung testen. Wenn dies fehlschlägt, können einige firewall-Regel können vorhanden sein. Wenn es fehlschlägt, von Apache/PHP, so etwas wie SELinux/AppArmor statt.
  • Was bedeutet phpinfo() - show über openssl?
  • Wie überprüfe ich die openssl client auf, wie die Schaffung einer Verbindung test?
  • Der Abschnitt von openssl ist es, aktiviert ist, und es gibt auch die library-version, der header-version, die Standard-config , aber keine Werte für die openssl.cafile und die opensll.capath.
  • Könnte es sein, firewall, hast du irgendwas blockiert verbindungen zum internet?
  • Ich wandte mich von der Windows-firewall und ich bekomme den gleichen Fehler. Ich habe auch noch AVG auf meinem system, aber ich dont sehen irgendwelche Einstellungen für das blockieren von verbindungen. So...ja...an dieser Stelle weiß ich nicht...vielleicht ist mein code? Keine Ahnung...
  • Ich kam in fast identischen code in anderen Orten (zB diese Frage als ich das erste sah auf Ihre Frage, also ich denke, dein code ist wohl OK. Meine Vermutung wäre, Umwelt - PHP, OS, firewall, aber du hast schon bedeckt die! "Verwenden Sie die Gmail-SMTP-Server" - Abschnitt dieses Handbuchs sagt, dass Sie brauchen, um "Weniger sichere apps", hier beschrieben, haben Sie das getan?
  • wenn es sich herausstellt, werden die "Weniger sichere apps" wechseln, würde ich gerne poste es als Antwort ... 🙂

InformationsquelleAutor slevin | 2017-08-29
Schreibe einen Kommentar