Cách Gửi Email Từ Tập lệnh PHP Sử dụng Xác thực SMTP

Mục lục:

Cách Gửi Email Từ Tập lệnh PHP Sử dụng Xác thực SMTP
Cách Gửi Email Từ Tập lệnh PHP Sử dụng Xác thực SMTP
Anonim

Điều cần 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 > hay chưa, sửa đổi tệp PHP bằng cách sử dụng các ví dụ đã cho.

Bài viết này giải thích cách sử dụng xác thực SMTP để gửi email bằng hàm PHP mail () trong PEAR Mail.

Gửi Email Với Chức năng Thư PHP

Khi bạn sử dụng hàm PHP mail (), bạn sẽ gửi email trực tiếp từ máy chủ web chứ không phải máy chủ thư của bạn. Nếu bạn có một máy chủ thư thông qua máy chủ lưu trữ web của mình hoặc thậm chí một máy chủ thư với một máy chủ lưu trữ khác, thay vào đó, bạn nên gửi thư qua máy chủ đó.

Vấn đề là hàm mail () trong PHP 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 thêm một lớp PHP.

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

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Thư

Chúng tôi sẽ hướng dẫn 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.

Image
Image

Nếu máy chủ web của bạn đã cài đặt một hoặc nhiều lớp trong số các lớp này, 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 học 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 mình. 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 của riêng bạn.

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

  1. Đảm bảo rằng miền của bạn được trỏ đến các bản ghi Mail Exchange (MX) của máy chủ máy chủ thư của bạn và ghi lại 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 chưa.
  3. Nếu PEAR Mail chưa được cài đặt, hãy tham khảo ý kiến của máy chủ web mail của bạn để được hướng dẫn cụ thể để cài đặt nó.
  4. Sau khi PEAR Mail được cài đặt, hãy sửa đổi một trong các tệp PHP mẫu trong các phần sau để phù hợp với nhu cầu của bạn.

Ví dụ về Tập lệnh PHP PEAR Mail cho Thư SMTP

Bạn có thể tạo tập lệnh của riêng mình từ đầu nếu bạn thích 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 vào biến máy chủ và sử dụng thông tin đăng nhập 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.

request_once "Mail.php";

$ from="Tên người gửi";

$ to="Tên người nhận";

$ subject="Dòng chủ đề ở đây: ";

$ body=" bất kỳ thông báo nào bạn muốn ";

$ host=" yourmailhost.com ";

$ username=" tên người dùng hoặc email của bạn "; $ password="your password";

$ headers=array ('From'=> $ from, 'To'=> $ to, 'Chủ đề'=> $ topic);

$ 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 ("

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

); }

Ví dụ Tập lệnh PHP PEAR Mail để 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 số sửa đổi đối với ví dụ trước. Bạn sẽ cần trỏ biến máy chủ lưu trữ tới 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ủ lưu trữ 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.

request_once "Mail.php";

$ from="Tên người gửi";

$ to="Tên người nhận";

$ subject="Dòng chủ đề ở đây: ";

$ body=" bất kỳ tin nhắn nào bạn muốn ";

$ host=" ssl: //yourmailhost.com ";

$ port=" 587 "; $ username="tên người dùng hoặc email của bạn";

$ password="mật khẩu của bạn";

$ headers=array ('Từ'=> $ từ, ' 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 ("

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

); }

Đề xuất: