Làm cách nào để gửi email bằng PHP SMTP?

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;
2

Sử 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ủ IMAP

Cá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ư PHPMailer

PHPMailer - 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

Chủ Đề