Frage

Bitte helfen Sie mir, ich bin neu in PHP und seit dem letzten 5 Stunden, die ich zu SEMD mail bin versuchen und jetzt wirklich müde. Danke.

Hier ist mein Code. Ich verwende Google Mail-Konto.     

include("class.phpmailer.php");
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

$body             = $mail->getFile('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$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   = "hussaintalha@gmail.com";  // GMAIL username
$mail->Password   = "xxxxxxxx";            // GMAIL password

$mail->AddReplyTo("hussaintalha@gmail.com","First Last");

$mail->From       = "hussaintalha@gmail.com.com";
$mail->FromName   = "First Last";

$mail->Subject    = "PHPMailer Test Subject via gmail";

//$mail->Body       = "Hi,<br>This is the HTML BODY<br>";                      //HTML Body
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap   = 50; // set word wrap

$mail->MsgHTML($body);

$mail->AddAddress("hussaintalha@gmail.com", "John Doe");

$mail->AddAttachment("images/phpmailer.gif");             // attachment

$mail->IsHTML(true); // send as HTML

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
?>

Wenn ich meine Datei ausführen bekomme ich diesen Fehler:

  

Warning: fopen (contents.html)   [Function.fopen]: failed öffnen   stream: No such file or directory in   D: \ xampplite \ htdocs \ WebEng \ class.phpmailer.php   on line 1870

     

Warning: fsockopen ()   [Function.fsockopen]: nicht in der Lage zu   Verbindung zum ssl: //smtp.gmail.com: 465   (Kann nicht den Socket-Transport finden   „Ssl“ - hast du vergessen, es zu ermöglichen,   wenn Sie konfiguriert PHP?) in   D: \ xampplite \ htdocs \ WebEng \ class.smtp.php   on line 122 Mailer Fehler: SMTP Fehler:   Konnte sich nicht mit SMTP-Host verbinden.

War es hilfreich?

Lösung

Vor allem, wenn Sie Fehlermeldungen erhalten, dann das ist großartig! Da in 90% der Fälle, die Sie finden, dass andere sie auch hatten und deshalb werden Sie viele Informationen über das Internet zu dieser Fehlermeldung finden.

So Schritt 1, wenn eine Fehlermeldung bekommen Sie noch nicht wissen, ist immer offen Google und kopieren fügen Sie ihn dort. Aber alle Wege nehmen oder andere Dinge, die in Ihrem System eindeutig verbunden sind.

Dann über Ihre Fehler. Vor allem ist xampp Licht nicht SSL unterstützen. Vielleicht versuchen Sie es leichter send Beispiel zuerst. Wie ein sehr kleiner und erhöhen sie dann Schritt für Schritt. Das ist, was ich immer tun, wenn ich weiß nicht, warum etwas nicht funktioniert. Ich beginne mit einer Linie und sehen, was es tut, dann noch ich hinzufügen, und so weiter.

Angenommen, Sie mit diesem beginnen und sehen, ob es funktioniert:

<?php

include("class.phpmailer.php");

$mail             = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username   = "hussaintalha@gmail.com";  // GMAIL username
$mail->Password   = "xxxxxxxx";            // GMAIL password

$mail->From       = "hussaintalha@gmail.com";
$mail->Subject    = "PHPMailer Test Subject via gmail";
$mail->Body       = "Hi, this is a test";           
$mail->AddAddress("hussaintalha@gmail.com", "Hussain");

$mail->send();
?>

oh, und btw. Ihre E-Mail aus hat eine .com zu viele!

Andere Tipps

Sie PHP-Installation (XAMPP, von den Blicken von ihm) nicht unterstützt SSL. Stellen Sie sicher, dass die Zeile

extension=php_openssl.dll

ist nicht in der php.ini auf Kommentar, Apache neu zu starten, und wenn das noch nicht versuchen, funktioniert das Überschreiben (oder Kopieren) ssleay32.dll und libeay32.dll von Ihrem PHP-Verzeichnis in Apache binär (.exe) Verzeichnis dann Apache neu gestartet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top