I migrated an application to a platform without a local transport agent [MTA]. I did not want to configure an MTA, so I wrote this xxmail function to replace mail[] with calls to a remote SMTP server. Hopefully it is of some use.
function xxmail[$to, $subject, $body, $headers]
{
$smtp = stream_socket_client['tcp://smtp.yourmail.com:25', $eno, $estr, 30];
$B = 8192;
$c = "\r\n";
$s = 'myapp@someserver.com';
________số 8
// Envelope
fwrite[$smtp, 'mail from: ' . $s . $c];
$junk = fgets[$smtp, $B];
fwrite[$smtp, 'rcpt to: ' . $to . $c];
$junk = fgets[$smtp, $B];
fwrite[$smtp, 'data' . $c];
$junk = fgets[$smtp, $B];
$mail = new PHPMailer[true];
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP[];
$mail->SMTPSecure = '';
$mail->SMTPAuth = true;
$mail->Host = 'mx.host.com';
$mail->Username = 'username';
$mail->Password = 'your password';
$mail->Port = 2525;
0$mail = new PHPMailer[true];
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP[];
$mail->SMTPSecure = '';
$mail->SMTPAuth = true;
$mail->Host = 'mx.host.com';
$mail->Username = 'username';
$mail->Password = 'your password';
$mail->Port = 2525;
1$mail = new PHPMailer[true];
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP[];
$mail->SMTPSecure = '';
$mail->SMTPAuth = true;
$mail->Host = 'mx.host.com';
$mail->Username = 'username';
$mail->Password = 'your password';
$mail->Port = 2525;
2Sử dụng PHPMailer để gửi email với máy chủ thư SMTP và MailSlurp. Định cấu hình truy cập IMAP và SMTP trong PHP bằng phpmailer và trình soạn thảo
PHP là một ngôn ngữ tuyệt vời để gửi email với SMTP. PHP cung cấp nhiều chức năng để gửi email trực tiếp hoặc bằng cách kết nối với máy chủ SMTP. Trong bài đăng này, chúng tôi sẽ thảo luận về tiêu chuẩn SMTP và các cách khác nhau để gửi email trong PHP bằng SMTP
Giao thức SMTP là gì?
SMTP hoặc giao thức chuyển thư đơn giản là cách tiêu chuẩn để trao đổi email giữa máy chủ và mã. Nếu bạn muốn gửi email bằng PHP bằng SMTP, trước tiên bạn phải xác định máy chủ mà bạn muốn kết nối. Đây có thể là máy chủ SMTP lưu trữ tài khoản email của người nhận hoặc máy chủ SMTP của riêng bạn sẽ thay mặt bạn gửi
Hầu hết các nhà cung cấp thư đều chạy máy chủ SMTP trên các cổng 25, 2525, 465 hoặc 578. MailSlurp là nhà cung cấp email miễn phí với máy chủ SMTP có sẵn trên các cổng sau
Giao thứcHostPortTLSMô tảSMTPmx. mailslurp. com2525falseMáy chủ SMTPIMAPmailslurp. click1143falseMáy chủ IMAPCác phương thức gửi thư PHP
Vì PHP là một ngôn ngữ lâu đời và đáng kính nên có nhiều cách để gửi email. Phương thức lâu đời nhất là hàm mail[]. Chức năng thư đã có từ PHP4 nhưng nó đi kèm với một số lưu ý. Đầu tiên, nó yêu cầu cấu hình bằng tệp hệ thống
$mail = new PHPMailer[true];
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP[];
$mail->SMTPSecure = '';
$mail->SMTPAuth = true;
$mail->Host = 'mx.host.com';
$mail->Username = 'username';
$mail->Password = 'your password';
$mail->Port = 2525;
3. Điều này có thể khó thiết lập. Các ứng dụng PHP hiện đại thường sử dụng thư viện cấp cao hơn như PHPMailerPHPMailer - thư viện mail PHP phổ biến nhất
Do những hạn chế của chức năng
$mail = new PHPMailer[true];
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP[];
$mail->SMTPSecure = '';
$mail->SMTPAuth = true;
$mail->Host = 'mx.host.com';
$mail->Username = 'username';
$mail->Password = 'your password';
$mail->Port = 2525;
4 tích hợp, hầu hết các nhà phát triển khuyên bạn nên sử dụng thư viện mã nguồn mở PHPMailer. Bạn có thể cài đặt thư viện bằng trình soạn thảo $mail = new PHPMailer[true];
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP[];
$mail->SMTPSecure = '';
$mail->SMTPAuth = true;
$mail->Host = 'mx.host.com';
$mail->Username = 'username';
$mail->Password = 'your password';
$mail->Port = 2525;
5. Sau đó, bao gồm các thư viện trong mã php của bạn bằng cách sử dụng tính năng tự động tải của nhà cung cấp để gửi email bằng SMTP trong PHP