Senden Sie eine E-Mail mit dem GMail SMTP-Server von einer PHP-Seite aus

Ich versuche, eine E-Mail über den SMail-Server von GMail von einer PHP-Seite aus zu senden. Ich erhalte jedoch die folgende Fehlermeldung:

Authentifizierungsfehler [SMTP: SMTP-Server unterstützt keine Authentifizierung (Code: 250, Antwort: mx.google.com zu Ihren Diensten, [98.117.99.235] GRÖSSE 35651584

Kann jemand helfen? Hier ist mein Code:

 <?php require_once "Mail.php"; $from = "Sandra Sender <sender@example.com>"; $to = "Ramona Recipient <ramona@microsoft.com>"; $subject = "Hi!"; $body = "Hi,\n\nHow are you?"; $host = "smtp.gmail.com"; $port = "587"; $username = "testtest@gmail.com"; $password = "testtest"; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo("<p>" . $mail->getMessage() . "</p>"); } else { echo("<p>Message successfully sent!</p>"); } ?> 
357
03 апр. eingestellt von skb 03 Apr 2009-04-03 05:47 09 um 5:47 2009-04-03 05:47
@ 13 Antworten
 // Pear Mail Library require_once "Mail.php"; $from = '<fromaddress@gmail.com>'; $to = '<toaddress@yahoo.com>'; $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' => 'johndoe@gmail.com', 'password' => 'passwordxxx' )); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo('<p>' . $mail->getMessage() . '</p>'); } else { echo('<p>Message successfully sent!</p>'); } 
336
01 мая '10 в 7:02 2010-05-01 07:02 die antwort ist gegeben pavan kumar 01 Mai '10 at 7:02 2010-05-01 07:02

Senden Sie mit dem Swift-Mailer einfach E-Mails über Ihre Google Mail-Anmeldeinformationen:

 <?php require_once 'swift/lib/swift_required.php'; $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") ->setUsername('GMAIL_USERNAME') ->setPassword('GMAIL_PASSWORD'); $mailer = Swift_Mailer::newInstance($transport); $message = Swift_Message::newInstance('Test Subject') ->setFrom(array('abc@example.com' => 'ABC')) ->setTo(array('xyz@test.com')) ->setBody('This is a test mail.'); $result = $mailer->send($message); ?> 
99
07 сент. die antwort ist gegeben shasi kanth 07 sep . 2012-09-07 15:10 '12 am 15:10 2012-09-07 15:10

Ihr Code verwendet kein TLS (SSL), das für die Zustellung von E-Mails an Google (und die Verwendung der Ports 465 oder 587) erforderlich ist.

Sie können dies durch die Installation tun

$host = "ssl://smtp.gmail.com";

Ihr Code sieht verdächtig aus, wie in diesem Beispiel , das sich im Hostnamenschema auf ssl: // bezieht.

53
03 апр. die antwort ist gegeben crb 03 Apr 2009-04-03 06:00 09 um 6:00 Uhr 2009-04-03 06:00 Uhr

Ich kann Pear Mail nicht empfehlen. Es wurde seit 2010 nicht aktualisiert. Lesen Sie auch die Quelldateien. Der Quellcode ist fast veraltet, im PHP 4-Stil geschrieben, und viele Fehler / Fehler wurden veröffentlicht (Google). Ich verwende Swift Mailer.

Swift Mailer kann in jede in PHP 5 geschriebene Webanwendung integriert werden und bietet einen flexiblen und eleganten objektorientierten Ansatz zum Versenden von E-Mails mit einer Vielzahl von Funktionen.

Senden Sie E-Mails mit SMTP, Sendmail, Postfix oder benutzerdefiniertem Transport und führen Sie Ihre eigenen aus.

Support-Server, die einen Benutzernamen und ein Passwort und / oder eine Verschlüsselung benötigen.

Schutz vor Header-Angriffen, ohne den Inhalt der Anforderungsdaten zu löschen.

Senden Sie MIME-kompatible HTML- / mehrseitige E-Mails.

Verwenden Sie ereignisgesteuerte Plugins, um die Bibliothek anzupassen.

Umgang mit großen Anhängen und eingebetteten / eingebetteten Bildern mit geringem Speicherbedarf.

Dies ist ein kostenloser und offener Quellcode, den Sie Swift Mailer herunterladen und auf Ihren Server herunterladen können. (Die Liste der Funktionen wird von der Website des Eigentümers kopiert.)

Das Arbeitsbeispiel für Gmail SSL / SMTP und Swift Mailer ist hier ...

 // Swift Mailer Library require_once '../path/to/lib/swift_required.php'; // Mail Transport $transport = Swift_SmtpTransport::newInstance('ssl://smtp.gmail.com', 465) ->setUsername('username@gmail.com') // Your Gmail Username ->setPassword('my_secure_gmail_password'); // Your Gmail Password // Mailer $mailer = Swift_Mailer::newInstance($transport); // Create a message $message = Swift_Message::newInstance('Wonderful Subject Here') ->setFrom(array('sender@example.com' => 'Sender Name')) // can be $_POST['email'] etc... ->setTo(array('receiver@example.com' => 'Receiver Name')) // your email / multiple supported. ->setBody('Here is the <strong>message</strong> itself. It can be text or <h1>HTML</h1>.', 'text/html'); // Send the message if ($mailer->send($message)) { echo 'Mail sent successfully.'; } else { echo 'I am sure, your configuration are not correct. :('; } 

Hoffe das hilft. Viel Spaß beim Codieren ... :)

32
02 авг. Die Antwort wird mit Madan Sapkota 02 gegeben. 2013-08-02 19:42 '13 am 19:42 2013-08-02 19:42
 <?php date_default_timezone_set('America/Toronto'); require_once('class.phpmailer.php'); //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded $mail = new PHPMailer(); $body = "gdssdh"; //$body = eregi_replace("[\]",'',$body); $mail->IsSMTP(); // telling the class to use SMTP //$mail->Host = "ssl://smtp.gmail.com"; // SMTP server $mail->SMTPDebug = 1; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port for the GMAIL server $mail->Username = "user@gmail.com"; // GMAIL username $mail->Password = "password"; // GMAIL password $mail->SetFrom('contact@prsps.in', 'PRSPS'); //$mail->AddReplyTo("user2@gmail.com', 'First Last"); $mail->Subject = "PRSPS password"; //$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test $mail->MsgHTML($body); $address = "user2@yahoo.co.in"; $mail->AddAddress($address, "user2"); //$mail->AddAttachment("images/phpmailer.gif"); // attachment //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } ?> 
28
25 дек. Die Antwort wird von Deept Raghav 25. Dezember gegeben 2011-12-25 15:19 '11 am 15:19 2011-12-25 15:19

SwiftMailer kann E-Mails über externe Server versenden.

Hier ein Beispiel, das zeigt, wie Sie den Google Mail-Server verwenden:

 require_once "lib/Swift.php"; require_once "lib/Swift/Connection/SMTP.php"; //Connect to localhost on port 25 $swift = new Swift(new Swift_Connection_SMTP("localhost")); //Connect to an IP address on a non-standard port $swift = new Swift(new Swift_Connection_SMTP("217.147.94.117", 419)); //Connect to Gmail (PHP5) $swift = new Swift(new Swift_Connection_SMTP( "smtp.gmail.com", Swift_Connection_SMTP::PORT_SECURE, Swift_Connection_SMTP::ENC_TLS)); 
20
23 дек. Die Antwort lautet Pekka 웃 23 Dez. 2010-12-23 17:57 '10 am 17:57 2010-12-23 17:57

Der fragliche Code erfordert zwei Änderungen.

 $host = "ssl://smtp.gmail.com"; $port = "465"; 

SSL erfordert Port 465.

13
16 апр. Die Antwort gibt s01ipsist 16. April 2010-04-16 04:50 '10 am 4:50 2010-04-16 04:50

Senden Sie E-Mails mit der phpMailer-Bibliothek über Google Mail. Laden Sie die Bibliotheksdateien von Github herunter

 <?php  //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that date_default_timezone_set('Etc/UTC'); require '../PHPMailerAutoload.php'; //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 2; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = 'smtp.gmail.com'; // use // $mail->Host = gethostbyname('smtp.gmail.com'); // if your network does not support SMTP over IPv6 //Set the SMTP port number - 587 for authenticated TLS, aka RFC4409 SMTP submission $mail->Port = 587; //Set the encryption system to use - ssl (deprecated) or tls $mail->SMTPSecure = 'tls'; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication - use full email address for gmail $mail->Username = "username@gmail.com"; //Password to use for SMTP authentication $mail->Password = "yourpassword"; //Set who the message is to be sent from $mail->setFrom('from@example.com', 'First Last'); //Set an alternative reply-to address $mail->addReplyTo('replyto@example.com', 'First Last'); //Set who the message is to be sent to $mail->addAddress('whoto@example.com', 'John Doe'); //Set the subject line $mail->Subject = 'PHPMailer GMail SMTP test'; //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); //Replace the plain text body with one created manually $mail->AltBody = 'This is a plain-text message body'; //Attach an image file $mail->addAttachment('images/phpmailer_mini.png'); //send the message, check for errors if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } 
5
26 сент. Die Antwort wird von Bhavin Solanki 26 Sep gegeben . 2016-09-26 13:17 '16 um 13:17 Uhr 2016-09-26 13:17

Google Mail benötigt Port 465 sowie den Code von phpmailer :)

4
12 июля '09 в 0:26 2009-07-12 00:26 Die Antwort ist Sandeep am 12. Juli 09 um 0:26 2009-07-12 00:26

Ich hatte auch dieses Problem. Ich habe die richtigen Einstellungen vorgenommen und weniger sichere Anwendungen aktiviert, aber es funktioniert immer noch nicht. Schließlich habe ich dieses https://accounts.google.com/UnlockCaptcha aktiviert und es hat für mich funktioniert. Hoffe das hilft jemandem.

3
25 окт. Die Antwort wird am 25. Oktober von Strategist gegeben 2016-10-25 13:56 '16 um 13:56 Uhr 2016-10-25 13:56

Führen Sie die folgenden Befehle aus, um PEAR Mail.php in Ubuntu zu installieren:

  sudo apt-get install php-pear sudo pear install mail sudo pear install Net_SMTP sudo pear install Auth_SASL sudo pear install mail_mime 
2
11 апр. Die Antwort ist Nahid 11. April gegeben. 2017-04-11 14:08 '17 um 14:08 Uhr 2017-04-11 14:08

Ich habe eine Lösung für GSuite-Konten, die nicht das Suffix @ gmail.com haben. Ich denke auch, dass es für GSuite-Konten von @ gmail.com funktionieren wird, aber ich habe es nicht versucht. Sie müssen zunächst die Berechtigung haben, die Einstellung "allos¿w less safe application" für Ihr GSuite-Konto zu ändern. Wenn Sie über Berechtigungen verfügen (Sie können Ihre Kontoeinstellungen überprüfen -> Sicherheit), müssen Sie "Authentifizierung mit zwei Leistungsfaktoren" deaktivieren. Gehen Sie zum Seitenende und setzen Sie "Ja", um weniger sichere Anwendungen zuzulassen. All das. Wenn Sie nicht berechtigt sind, diese Einstellungen zu ändern, funktioniert die Lösung für diesen Thread nicht. Überprüfen Sie https://support.google.com/a/answer/6260879?hl=de , um Änderungen an der Einstellung "Weniger zulassen" vorzunehmen.

0
01 сент. Antwort von Diego Andrés Díaz Espinoza 01 Sep 2018-09-01 18:20 '18 um 18:20 Uhr 2018-09-01 18:20

Installieren

 'auth' => false, 

Sehen Sie auch, ob Port 25 funktioniert.

-2
03 апр. Die Antwort wird gegeben CookieOfFortune 03 Apr. 2009-04-03 05:57 09 um 5:57 2009-04-03 05:57

Weitere Fragen zu Tags oder Frage stellen