Hướng dẫn php script to send email using smtp authentication - tập lệnh php để gửi email bằng xác thực smtp

Những gì để biết

  • Tùy chọn lớp PHP: PHPMailer, SwiftMailer, Zend_mail, Xpertmailer, Pear Mail.
  • Pear Mail: Lưu ý Tên máy chủ thư> Kiểm tra xem Pear Mail được cài đặt> Sửa đổi tệp PHP bằng các ví dụ được đưa ra.

Bài viết này giải thích cách sử dụng xác thực SMTP để gửi email với chức năng Php Mail [] trong Pear Mail.

Gửi email với chức năng thư PHP

Khi bạn sử dụng chức năng Php Mail [], cuối cùng bạn sẽ gửi email trực tiếp từ máy chủ web của mình thay vì máy chủ thư của bạn. Nếu bạn có một máy chủ thư qua máy chủ web của bạn hoặc thậm chí là một máy chủ thư có máy chủ khác, thường thì tốt hơn là gửi thư qua đó.

Vấn đề là hàm PHP Mail [] không cung cấp bất kỳ cách tích hợp nào để gửi thư qua SMTP. Nếu bạn muốn mở chức năng đó, bạn sẽ cần cài đặt một lớp PHP bổ sung.

Dưới đây là một số tùy chọn hoạt động:

  • PHPMailer
  • Swiftmailer
  • Zend_Mail
  • Xpertmailer
  • Thư lê

Chúng tôi sẽ chỉ cho bạn cách sử dụng Pear Mail, nhưng bạn có thể sử dụng bất kỳ lớp nào hỗ trợ SMTP.

Hình ảnh anh hùng / Getty

Nếu máy chủ web của bạn đã có một hoặc nhiều trong số các lớp này được cài đặt, nó có thể có các hướng dẫn liên quan đến tình huống của bạn. Nếu vậy, hãy tiếp tục và sử dụng lớp mà bạn có quyền truy cập.

Chỉ sử dụng phương pháp này nếu bạn đang sử dụng PHP để tạo các biểu mẫu thư tùy chỉnh của riêng bạn. Nếu bạn đang sử dụng Hệ thống quản lý nội dung [CMS] như WordPress, hãy tìm một plugin hoặc chức năng tích hợp để gửi thư qua SMTP, thay vì cố gắng tạo riêng của bạn.

Cách sử dụng lê để gửi thư qua SMTP

  1. Đảm bảo rằng tên miền của bạn được chỉ vào hồ sơ trao đổi thư [MX] của máy chủ máy chủ thư của bạn và ghi chú tên máy chủ thư của bạn. Ví dụ: nó có thể là mail.yourdomain.net hoặc smtp.yourdomain.net.

  2. Kiểm tra xem Pear Mail đã được cài đặt trên máy chủ thư của bạn.

  3. Nếu Pear Mail không được cài đặt, hãy tham khảo ý kiến ​​máy chủ thư web của bạn để biết các hướng dẫn cụ thể để cài đặt nó.

  4. Khi Pear Mail được cài đặt, hãy sửa đổi một trong các tệp PHP ví dụ trong các phần sau để phù hợp với nhu cầu của bạn.

Ví dụ: script pear mail php cho smtp mail

Bạn có thể tạo tập lệnh của riêng mình từ đầu nếu bạn muốn hoặc sửa đổi ví dụ sau theo ý thích của bạn. Đảm bảo nhập tên máy chủ thư web của bạn trong biến máy chủ và sử dụng thông tin đăng nhập của bạn cho máy chủ thư web của bạn trong các trường tên người dùng và mật khẩu.

require_once "Mail.php";
$from = "Sender Name ";
$to = "Recipient Name ";
$subject = " Subject Line Here: ";
$body = " any message you want ";
$host = "yourmailhost.com";
$username = "your username or email";
$password = "your password";
$headers = array ['From' => $from,
'To' => $to,
'Subject' => $subject];
$smtp = Mail::factory['smtp',
array ['host' => $host,
'auth' => true,
'username' => $username,
'password' => $password]];
$mail = $smtp->send[$to, $headers, $body];
if [PEAR::isError[$mail]] {
echo["

". $ mail-> getMessage []."

"];} khác {echo ["
} else {
echo["

Tin nhắn đã gửi đi thành công!

"];}
}

Ví dụ tập lệnh Php Mail Php để xác thực SMTP và mã hóa SSL

Nếu bạn muốn sử dụng xác thực SMTP và mã hóa SSL, bạn sẽ phải thực hiện một vài sửa đổi cho ví dụ trước. Bạn sẽ cần trỏ biến máy chủ vào máy chủ thư SSL của mình và cũng chỉ định số cổng như 25, 465, 587, 2525 hoặc 8025. Liên hệ với máy chủ thư web của bạn để biết thêm thông tin nếu bạn không thể tìm ra cổng nào sử dụng.

require_once "Mail.php";
$from = "Sender Name ";
$to = "Recipient Name ";
$subject = " Subject Line Here: ";
$body = " any message you want ";
$host = "ssl://yourmailhost.com";
$port = "587";
$username = "your username or email";
$password = "your password";
$headers = array ['From' => $from,
'To' => $to,
'Subject' => $subject];
$smtp = Mail::factory['smtp',
array ['host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password]];
$mail = $smtp->send[$to, $headers, $body];
if [PEAR::isError[$mail]] {
echo["

". $ mail-> getMessage []."

"];} khác {echo ["
} else {
echo["

Tin nhắn đã gửi đi thành công!

"];}
}

Cảm ơn vì đã cho chúng tôi biết!

Nhận tin tức công nghệ mới nhất được gửi mỗi ngày

Đặt mua

Bài viết về cách gửi email trong PHP ban đầu được xuất bản tại blog của MailTrap.

Hôm nay tôi rất muốn chia sẻ với bạn hướng dẫn gửi email PHP, một trong những ngôn ngữ phát triển web phổ biến nhất.

Hàm thư tích hợp PHP []

Có hai cách cơ bản để gửi email với PHP: Chức năng thư tích hợp và các gói thư bên ngoài.

Hàm thư tích hợp PHP [] rất đơn giản nhưng đồng thời, nó cung cấp một chức năng hạn chế để gửi email. Bạn đã giành chiến thắng có thể thêm các tệp đính kèm vào email của mình và xây dựng một mẫu HTML tuyệt đẹp với hình ảnh nhúng cũng sẽ là một nhiệm vụ khó khăn.

Mặt khác của hàm thư PHP [] là email được gửi từ máy chủ web của bạn, điều này có thể gây ra các vấn đề về khả năng giao hàng do những lo ngại về bảo mật như nghi ngờ thư rác và danh sách đen. Cách tốt nhất để khắc phục vấn đề này là gửi tin nhắn qua máy chủ SMTP, tuy nhiên, chức năng này cũng bị hạn chế. Php Mail [] thường không cho phép bạn sử dụng máy chủ SMTP bên ngoài và nó không hỗ trợ xác thực SMTP.

Nói cách khác, tôi không khuyên bạn nên sử dụng chức năng thư tích hợp PHP [] và khuyên bạn nên tránh những cơn đau đầu có thể gây ra bằng cách cài đặt gói Mailer bên ngoài.

Nếu bạn vẫn cam kết với hàm thư tích hợp PHP [] và sẵn sàng chấp nhận thử thách, hãy để Lôi xem mã cơ bản và các tham số chính của nó.

Cú pháp và tham số Cú pháp php khá đơn giản:
The PHP mail syntax is pretty simple:


Nó sử dụng các tham số sau:

  • Tiết $ đến Định dạng địa chỉ email có thể là hoặc người dùng. Nếu có một số người nhận, hãy tách họ bằng dấu phẩy [-s].
  • Chủ đề của người Viking Các dòng phải được phân tách bằng CRLF [\ r \ n]. Mỗi dòng không được vượt quá 70 ký tự.
  • Tiết [Tiêu đề $] Tiết = Người nhận bổ sung tin nhắn của bạn, có thể được bao gồm trong CC hoặc BCC. Các tiêu đề là tùy chọn, ngoại trừ các tiêu đề từ từ từ trên mạng: Nó phải được chỉ định, nếu không, bạn sẽ nhận được một thông báo lỗi như cảnh báo: mail []: "sendmail_from" không được đặt trong php.ini hoặc tùy chỉnh "từ:".

Để biết thêm chi tiết và các tham số bổ sung, hãy tham khảo tài liệu PHP.

Gửi email HTML bằng hàm php mail []

Cơ thể của thông điệp có thể được viết bằng HTML. Tuy nhiên, như tôi đã đề cập ở trên, nó nên đơn giản. Trong hàm thư PHP [], phần HTML sẽ trông như thế này:

// Message
$message = '


  Review Request Reminder


  

Here are the cases requiring your review in December:

Case titleCategoryStatusDue date
Case 1DevelopmentpendingDec-20
Case 1DevOpspendingDec-21
';

Điều quan trọng cần nhớ là gửi thư HTML, bạn cần đặt tiêu đề loại nội dung:

$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

Gửi email qua máy chủ SMTP trong PHP

Tôi chỉ định cài đặt SMTP ở đâu? Đây là một câu hỏi công bằng. Chuyển đến thư mục cài đặt PHP và định cấu hình chúng trong tệp Php.ini. Nhưng điều này sẽ chỉ hoạt động cho các giải pháp như localhost hoặc XMAPP vì như tôi đã đề cập, chức năng thư PHP không hỗ trợ xác thực SMTP và không cho phép gửi tin nhắn qua các máy chủ bên ngoài.

Có một số tùy chọn khác, khá khó hiểu nhưng tôi đã giành được quảng cáo chúng và khuyên bạn nên sử dụng các gói thư PHP bên ngoài để gửi email qua máy chủ SMTP bên ngoài.

PHPMailer

PHPMailer là thư viện gửi email cổ điển cho PHP. Nó hỗ trợ một số cách gửi tin nhắn email như mail [], sendmail, qmail và gửi trực tiếp đến máy chủ SMTP. Bên cạnh đó, nó cung cấp một danh sách các tính năng nâng cao:

  • Xác thực SMTP
  • Mã hóa an toàn/mime
  • Hỗ trợ các giao thức TLS và SSL
  • Nội dung HTML cùng với văn bản đơn giản
  • Nhiều tệp đính kèm FS, Chuỗi và nhị phân
  • Hỗ trợ hình ảnh nhúng.

Gửi email với PHPMailer và SMTP

Để gửi email với PHPMailer và SMTP, bạn cần cài đặt PHPMailer và định cấu hình cài đặt SMTP trước.

Cách cài đặt phpmailer

Lên đến phiên bản 5, PHPMailer đã cung cấp tệp phpmailerautoload.php, do đó, nó được yêu cầu chỉ đưa nó vào tập lệnh của bạn và tạo phiên bản PHPMailer. Bắt đầu từ bản phát hành PHPMailer 6.0 vào tháng 8 năm 2017, bạn cần cài đặt nó, tốt nhất là thông qua trình soạn thảo, Trình quản lý phụ thuộc cho PHP [theo cách này được đề xuất bởi người tạo PHPMailer trên GitHub]. Sau khi cài đặt trình soạn thảo, hãy thêm dòng này vào tệp Composer.json của bạn:
Starting from PHPMailer 6.0 release in August 2017, you need to install it, preferably via Composer, a dependency manager for PHP [this way is recommended by PHPMailer’s creators on Github]. After installing Composer, add this line to your composer.json file:

"phpmailer/phpmailer": "~6.0"

hoặc chạy

composer require phpmailer/phpmailer

Ví dụ, nếu bạn không muốn cài đặt Trình soạn thảo trong khi làm việc trong môi trường thử nghiệm, bạn có thể tải xuống các tệp có mã nguồn PHPMailer, sau đó sao chép nội dung của thư mục PHPMailer vào một trong các thư mục bao gồm được chỉ định trong cấu hình PHP của bạn và Tải từng tệp lớp theo cách thủ công:

Bài Viết Liên Quan

Chủ Đề