Próbuję użyć PHPMailer do wysyłania wiadomości e-mail przez SMTP, ale jak dotąd nie miałem szczęścia. Przeszedłem przez wiele pytań SO, samouczków PHPMailer i postów na forum, ale nadal nie mogę go uruchomić. będę dokumentować jak wielu moich nieudanych prób, jak pamiętam, aby zaoszczędzić czas, ale po pierwsze tu jest kod używam:Poczta wysyłana z PHPMailerem przez SSL przy użyciu SMTP
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors','On');
require('includes/class.phpmailer.php');
include('includes/class.smtp.php');
$mail = new PHPMailer();
$name = $_POST["name"];
$guests = $_POST["guests"];
$time = $_POST["time"];
$message = "<h1>".$name." has booked a table for ".$guests." at ".$time."</h1>";
$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)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 26; // set the SMTP port for the GMAIL server
$mail->Username = "[email protected]"; // SMTP account username
$mail->Password = "myPassword"; // SMTP account password
$mail->SetFrom('[email protected]', 'James Cushing');
$mail->AddReplyTo("[email protected]","James Cushing");
$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($message)
$address = "[email protected]";
$mail->AddAddress($address, "James Cushing");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>
Po pierwsze, kiedy uruchomić ten kod teraz mam dwa różne błędy. Na moim lokalnym serwerze pojawia się błąd: SMTP -> BŁĄD: nie można połączyć się z serwerem: upłynął limit czasu operacji (60)
Następujący błąd adresu nie powiodła się: [email protected]: wywołana poczta() bez połączenia
Mailer błąd: Poniższy adres nadawcy nie powiodła się: [email protected]: nazwie mail() bez połączenia
uzyskać moreorless ten sam błąd z systemem tego samego kodu na mój serwer WWW, ale pierwsza linia jest:
SMTP -> BŁĄD: nie można połączyć się z serwerem: sieć jest nieosiągalna (101)
Oczywiście warto zauważyć, że nie używam dosłownej "[email protected]", ale zastąpiłem moją własną wiadomość e-mail dla tego postu.
Czego próbowałem
- Korzystanie z serwera SMTP iCloud
- za pomocą innego portu
- umożliwienie rozszerzenia OpenSSL w moim pliku php.ini
- kopiowanie kodu z różnymi przykładami PHPMailer
- Korzystanie z systemu Google "DisplayUnlockCaptcha" w celu umożliwienia połączeń
- Wysyłanie do iz różnych adresów - Usuwanie "@ gmail.com" z właściwości Nazwa użytkownika - Wiele innych rzeczy, których nie pamiętam
To doprowadza mnie do szaleństwa przez około jeden dzień, więc jeśli ktokolwiek będzie mógł to rozwiązać, będą bohaterami.
Dzięki
Co stanie się po zmianie portu na 465? –
@userNOID To jedna z rzeczy, o których zapomniałem wspomnieć, że próbowałem. Daje mi to: ** SMTP -> ERROR: EHLO nie przyjął z serwera: SMTP -> ERROR: HELO nie przyjął z serwera: SMTP -> ERROR: AUTH nie przyjął z serwera: SMTP -> UWAGA: EOF został złapany podczas sprawdzania, czy jest podłączony ** –
Obsługuje konto SMTP? –