Tôi đang cố gắng sử dụng PHPMailer để gửi e-mail qua SMTP nhưng cho đến nay đã không có may mắn. Tôi đã trải qua một số câu hỏi SO, hướng dẫn PHPMailer và các bài đăng trên diễn đàn nhưng vẫn không thể làm cho nó hoạt động. Tôi sẽ ghi lại như nhiều lần thất bại của tôi như tôi có thể nhớ để tiết kiệm thời gian, nhưng trước hết ở đây là mã Tôi đang sử dụng:Thư không gửi bằng PHPMailer qua SSL bằng cách sử dụng 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!";
}
?>
Thứ nhất, khi tôi chạy mã này ngay bây giờ tôi nhận được hai lỗi khác nhau. Trên máy chủ cục bộ của tôi, tôi gặp lỗi:
SMTP -> LRI: Không thể kết nối với máy chủ: Đã hết thời gian hoạt động (60)
Địa chỉ gửi sau không thành công: [email protected]: Called Mail() mà không được kết nối
Mailer lỗi: sau đây Từ địa chỉ thất bại: [email protected]: được gọi là mail() mà không bị kết nối
tôi nhận được moreorless các lỗi tương tự chạy cùng mã trên máy chủ web của tôi, nhưng dòng đầu tiên là:
SMTP -> LRI: Không thể kết nối với máy chủ: Mạng không thể truy cập được (101)
Rõ ràng là đáng để chỉ ra rằng tôi không sử dụng chữ "[email protected]" nhưng tôi đã thay thế email của riêng mình cho bài đăng này.
Những điều tôi đã cố gắng
- Sử dụng máy chủ iCloud SMTP
- Sử dụng một cổng khác
- Việc kích hoạt phần mở rộng OpenSSL trong file php.ini của tôi
- Mã Sao chép từ các ví dụ PHPMailer khác nhau
- Sử dụng hệ thống "DisplayUnlockCaptcha" của Google để bật kết nối
- Gửi đến và đi từ các địa chỉ khác nhau - Xóa "@ gmail.com" khỏi thuộc tính Tên người dùng - Một số điều khác tôi không thể nhớ
Điều này đã khiến tôi phát điên trong khoảng một ngày, vì vậy nếu có ai đó có thể giải quyết thì họ sẽ là một anh hùng.
Cảm ơn
Điều gì xảy ra nếu bạn thay đổi cổng thành 465? –
@userNOID Đó là một trong những điều tôi quên đề cập đến mà tôi đã thử. Nó cho tôi điều này: ** SMTP -> LRI: EHLO không được chấp nhận từ máy chủ: SMTP -> LRI: HELO không được chấp nhận từ máy chủ: SMTP -> LRI: AUTH không được chấp nhận từ máy chủ: SMTP -> THÔNG BÁO: EOF bị bắt khi kiểm tra xem có kết nối không ** –
Hỗ trợ tài khoản SMTP của bạn? –