Cấu hình gửi mail PHP

Trong một số điều kiện nhất định, chúng tôi có thể được yêu cầu gửi email bằng PHP từ hệ thống Windows mà không cần cài đặt máy chủ email. Chúng tôi có thể làm như vậy bằng cách cài đặt và định cấu hình Sendmail trên Windows. Hướng dẫn này cung cấp tất cả các bước cần thiết để cài đặt và định cấu hình Sendmail trên Windows để gửi email bằng PHP

Cài đặt và cấu hình Sendmail

Tải xuống Sendmail từ trang web chính thức

Bây giờ giải nén zip đã tải xuống vào vị trí thích hợp và mở sendmail. ini để cấu hình máy chủ email như hình bên dưới

;Configure Sendmail

[sendmail]
...
smtp_server=
...
smtp_port=
...
auth_username=
...
auth_password=

Một ví dụ để cấu hình Gmail như hình bên dưới

[sendmail]
...
smtp_server=ssl://smtp.gmail.com
...
smtp_port=465
...
auth_username=username@gmail.com
...
auth_password=password

;OR

[sendmail]
...
smtp_server=tls://smtp.gmail.com
...
smtp_port=587
...
auth_username=username@gmail.com
...
auth_password=password

Bây giờ hãy lưu tệp và đóng tệp để áp dụng các thay đổi. Các cài đặt có thể khác nhau dựa trên máy chủ email hoặc nhà cung cấp dịch vụ

Định cấu hình PHP

Trong trường hợp bạn đang sử dụng cổng bảo mật 587 hoặc 465, bạn có thể gặp lỗi trong trường hợp mô-đun OpenSSL không được bật cho PHP. Nó có thể được thực hiện trên Windows bằng cách làm theo Cách định cấu hình Mô-đun OpenSSL PHP trên Windows

Để định cấu hình PHP, hãy mở tệp php. ini và cập nhật nó như hình bên dưới

;SMTP = localhost;
;smtp_port = 25;

...
...

;auth_username = ;
;auth_password = ;

...
...

;sendmail_from = me@example.com

...
...

sendmail_path = C:\sendmail\sendmail.exe

Gửi email

Ở bước này chúng ta sẽ viết chương trình gửi email sử dụng các cấu hình đã thực hiện ở bước trước. Viết chương trình PHP để gửi email như hình bên dưới

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

  • “$to” = your message recipient[s]. The email address format may be user@example.com or User . In general, it needs to comply with RFC 2822. It is mandatory.
  • “$subject” = chủ đề tin nhắn của bạn.  
  • “$message” = nội dung thư của bạn. Các dòng phải được phân tách bằng LF [\n]. Mỗi dòng không được vượt quá 70 ký tự
  • “[$headers]” = tiêu đề bắt buộc là tiêu đề “từ”. nó phải được chỉ định, nếu không, bạn sẽ nhận được thông báo lỗi như Cảnh báo. thư[]. “sendmail_from” không được đặt trong php. ini hoặc tùy chỉnh “Từ. ” thiếu tiêu đề

Các tiêu đề bổ sung cho biết những người nhận khác hoặc bản sao thư của bạn như CC hoặc BCC. Chúng có thể là một mảng trong đó khóa là tên tiêu đề và giá trị là giá trị tiêu đề. Hoặc chúng có thể là một chuỗi. Trong trường hợp này, các tiêu đề phải được phân tách bằng CRLF [\r\n]

  • [$parameters] = để chỉ định các tham số bổ sung được xác định trong cài đặt cấu hình sendmail_path

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

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

Phần thân của thư có thể được viết bằng HTML. Tuy nhiên, như chúng tôi đã đề cập ở trên, nó phải đơn giản.  

Trong hàm mail PHP[], phần tin nhắn HTML sẽ 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 đề Kiểu nội dung.
$headers[] = 'Phiên bản MIME. 1. 0’;
$headers[] = ‘Kiểu nội dung. văn bản/html;

Giao thức truyền dẫn đơn giản [SMTP]

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

Để gửi thư mà không cần SMTP, bạn cũng có thể tham khảo dịch vụ của bên thứ ba như Mailtrap, SendGrid hoặc Mailgun.  

Gửi nhiều email

Để gửi thư của bạn cho nhiều người nhận, hãy chỉ định địa chỉ email của họ trong tham số “$to” =  phân tách họ bằng dấu phẩy [-s].   

Đó là phương thức phù hợp duy nhất với hàm mail[] gốc. Nếu bạn cần gửi một lượng lớn thư trong một vòng lặp, hãy thử gói gửi thư bên ngoài như Symfony Mailer. Hoặc giải pháp của bên thứ ba

Làm cách nào để gửi email bằng PHP qua biểu mẫu liên hệ?

Ngoài ra còn có một vài cách để làm điều này. Và chủ đề này cần một hướng dẫn đặc biệt. Hoặc bạn chạy một trang web WordPress hoặc cần một biểu mẫu liên hệ đơn giản, hãy xem mã hóa này để biết biểu mẫu liên hệ PHP với Google reCaptcha.  

Chúng tôi giải thích cách thức hoạt động của nó một cách chi tiết, ngoài ra chúng tôi còn thực hiện nhiều cách khác để tạo biểu mẫu liên hệ bằng PHP trong hướng dẫn đặc biệt của chúng tôi về mã PHP để gửi email từ biểu mẫu liên hệ. Điều chỉnh

Chủ Đề