Senden Sie E-Mails mit dem GMail-SMTP-Server von einer PHP-Seite
Lesezeit: 7 Minuten
skb
Ich versuche, eine E-Mail über den SMTP-Server von GMail von einer PHP-Seite zu senden, aber ich erhalte diese Fehlermeldung:
Authentifizierungsfehler [SMTP: SMTP server does no support authentication (code: 250, response: mx.google.com at your service, [98.117.99.235] GRÖSSE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]
Dies funktionierte “bis zum ersten Mal”, indem nur GMAIL_USERNAME, GMAIL_PASSWORD und die Von- und An-Adressen geändert wurden. Keine andere Lösung hat bei mir funktioniert. Danke.
– Marco Muciño
14. Mai 2013 um 18:08 Uhr
Ich stimme zu, Swift Mailer ist eine Drop-in-Mail-Lösung, die viel einfacher ist, als mit Pear herumzuspielen. Vergessen Sie nicht, die php_openssl-Erweiterung von PHP zu aktivieren.
– Sot
30. Mai 2013 um 4:02 Uhr
Gute Lösung mit SwiftMailer! +1
– Amal Murali
16. Februar 2014 um 6:16 Uhr
arrgh. Ich kann Swiftmailer nicht zum Laufen bringen. Ich weiß nicht, wie man diesen “Composer” benutzt, also habe ich einfach die Swiftmailer-Zip-Datei von Github heruntergeladen, dann habe ich open_ssl aktiviert und dann meine Gmail-E-Mail und mein Passwort angegeben, aber es hat immer noch nicht funktioniert.
– boi_echos
14. September 2014 um 13:05 Uhr
ach sorry für meine dummheit. Sie müssen Ihr Google Mail-Konto öffnen, da Sie in einer E-Mail aufgefordert werden, “weniger sichere App” zu aktivieren. dann funktioniert es jetzt heheh
Ihr Code sieht verdächtig aus dieses Beispiel was sich auf ssl:// im Hostnamenschema bezieht.
Madan Sapkota
Pear Mail kann ich nicht empfehlen. Es wurde seit 2010 nicht mehr aktualisiert. Lesen Sie auch die Quelldateien; Der Quellcode ist fast veraltet, im PHP 4-Stil geschrieben und es wurden viele Fehler / Bugs gepostet (Google it). Ich verwende SwiftMailer.
Schneller Mailer lässt sich in jede in PHP 5 geschriebene Webanwendung integrieren und bietet einen flexiblen und eleganten objektorientierten Ansatz zum Senden von E-Mails mit einer Vielzahl von Funktionen.
Senden Sie E-Mails mit SMTP, Sendmail, Postfix oder einer eigenen benutzerdefinierten Transportimplementierung.
Unterstützen Sie Server, die Benutzername und Passwort und/oder Verschlüsselung erfordern.
Schützen Sie sich vor Header-Injection-Angriffen, ohne den Inhalt der Anforderungsdaten zu entfernen.
Senden Sie MIME-konforme HTML/mehrteilige E-Mails.
Verwenden Sie ereignisgesteuerte Plugins, um die Bibliothek anzupassen.
Behandeln Sie große Anhänge und Inline-/eingebettete Bilder mit geringer Speichernutzung.
Es ist eine kostenlose und Open Source, die Sie können Laden Sie Swift Mailer herunter und auf Ihren Server hochladen. (Die Funktionsliste wird von der Eigentümer-Website kopiert).
Das funktionierende Beispiel von 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('[email protected]') // 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('[email protected]' => 'Sender Name')) // can be $_POST['email'] etc...
->setTo(array('[email protected]' => '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. :(';
}
Deep Raghav
<?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 = "[email protected]"; // GMAIL username
$mail->Password = "password"; // GMAIL password
$mail->SetFrom('[email protected]', 'PRSPS');
//$mail->AddReplyTo("[email protected]', '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 = "[email protected]";
$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!";
}
?>
Warum stellt man den Host doppelt ein und welcher ist der richtige?
– Emil Bergeron
9. März 2016 um 3:13 Uhr
Woher bekomme ich die Datei class.phpmailer.php? Nur Code einzufügen ist nicht so hilfreich. Bitte geben Sie auch mehr Beschreibung für den Code an!
– GeneCode
24. Januar 2018 um 1:54 Uhr
Während ein Teil der Syntax veraltet ist, war PHPMailer für mich die beste Lösung, +1
– zoltar
15. März 2018 um 0:43 Uhr
Sam Apostel
SwiftMailer kann E-Mail über externe Server versenden.
Hier ist ein Beispiel, das zeigt, wie man einen Gmail-Server verwendet:
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));
Warum stellt man den Host doppelt ein und welcher ist der richtige?
– Emil Bergeron
9. März 2016 um 3:13 Uhr
Woher bekomme ich die Datei class.phpmailer.php? Nur Code einzufügen ist nicht so hilfreich. Bitte geben Sie auch mehr Beschreibung für den Code an!
– GeneCode
24. Januar 2018 um 1:54 Uhr
Während ein Teil der Syntax veraltet ist, war PHPMailer für mich die beste Lösung, +1
– zoltar
15. März 2018 um 0:43 Uhr
s01ipsist
Der in der Frage aufgeführte Code erfordert zwei Änderungen
$host = "ssl://smtp.gmail.com";
$port = "465";
Port 465 wird für eine SSL-Verbindung benötigt.
9933800cookie-checkSenden Sie E-Mails mit dem GMail-SMTP-Server von einer PHP-Seiteyes