Cách gửi email trong PHP

Trong hướng dẫn này, bạn sẽ học cách gửi email văn bản hoặc HTML đơn giản trực tiếp từ tập lệnh bằng cách sử dụng hàm PHP

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
4

Hàm PHP
';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
4

Gửi email rất phổ biến đối với ứng dụng web, chẳng hạn như gửi email chào mừng khi người dùng tạo tài khoản trên trang web của bạn, gửi bản tin cho người dùng đã đăng ký của bạn hoặc nhận phản hồi hoặc nhận xét của người dùng thông qua biểu mẫu liên hệ của trang web, v.v.

Bạn có thể sử dụng hàm

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
4 tích hợp sẵn trong PHP để tạo và gửi email đến một hoặc nhiều người nhận một cách linh hoạt từ ứng dụng PHP của bạn ở dạng văn bản thuần túy hoặc HTML được định dạng. Cú pháp cơ bản của chức năng này có thể được đưa ra với

thư [đến, chủ đề, tin nhắn, tiêu đề, tham số]

Bảng dưới đây tóm tắt các tham số của chức năng này

Tham sốMô tảYêu cầu — Các tham số sau là bắt buộc

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
7Địa chỉ email của người nhận.
';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
8Tiêu đề của email được gửi. Thông số này tôi. e. dòng chủ đề không được chứa bất kỳ ký tự xuống dòng nào [
';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
9].
0Xác định tin nhắn sẽ được gửi. Mỗi dòng nên được phân tách bằng một nguồn cấp dữ liệu-LF [______29]. Các dòng không được vượt quá 70 ký tự. Tùy chọn — Các tham số sau là tùy chọn_______00Thông số này thường được sử dụng để thêm các tiêu đề bổ sung như "Từ", "Cc", "Bcc". Các tiêu đề bổ sung phải được phân tách bằng dấu xuống dòng cộng với nguồn cấp dữ liệu dòng-CRLF [
';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
1].
';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
2Được sử dụng để truyền các tham số bổ sung

Gửi email văn bản thuần túy

Cách đơn giản nhất để gửi email bằng PHP là gửi email văn bản. Trong ví dụ bên dưới, trước tiên chúng ta khai báo các biến — địa chỉ email của người nhận, dòng chủ đề và nội dung thư — sau đó chúng ta chuyển các biến này đến hàm

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
4 để gửi email

Gửi email định dạng HTML

Khi bạn gửi tin nhắn văn bản bằng PHP, tất cả nội dung sẽ được coi là văn bản đơn giản. Chúng tôi sẽ cải thiện đầu ra đó và biến email thành email có định dạng HTML

Để gửi email HTML, quy trình sẽ giống như vậy. Tuy nhiên, lần này chúng tôi cần cung cấp thêm tiêu đề cũng như thông báo có định dạng HTML

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>

Ghi chú. Tuy nhiên, hàm PHP

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
4 là một phần của lõi PHP nhưng bạn cần thiết lập một máy chủ thư trên máy của mình để nó thực sự hoạt động

Trong hai chương tiếp theo [Xử lý biểu mẫu PHP và Xác thực biểu mẫu PHP], bạn sẽ tìm hiểu cách triển khai biểu mẫu liên hệ tương tác trên trang web của mình để nhận nhận xét và phản hồi của người dùng qua email bằng cách sử dụng tính năng gửi thư PHP này

PHP là một cách phổ biến để tạo các ứng dụng web động và gửi email giao dịch. Tìm hiểu cách bạn có thể gửi email bằng PHP cũng như bằng API email của MailerSend

PHP là một ngôn ngữ mã nguồn mở hiện đại và mạnh mẽ với một cộng đồng rộng lớn, tích cực. Nó được sử dụng rộng rãi trong phát triển web, bao gồm cả mục đích gửi email từ các trang web và ứng dụng. Có một số cách để gửi email bằng PHP, nhưng không phải tất cả đều cung cấp chức năng giống nhau hoặc được tối ưu hóa để gửi các phương pháp hay nhất

Hướng dẫn này sẽ hướng dẫn bạn cách thiết lập PHP và định cấu hình máy chủ của bạn để gửi và nhận email. Chúng tôi cũng sẽ hiển thị cho bạn các ví dụ mã thực tế cho các trường hợp sử dụng khác nhau để giúp bạn bắt đầu. Bạn sẽ có thể bắt đầu gửi email bằng PHP từ ứng dụng web của mình ngay lập tức

Sẳn sàng?

Tại sao nên sử dụng PHP để gửi email

PHP là một cách nhanh chóng, đáng tin cậy và linh hoạt để gửi email từ máy chủ web, làm cho nó trở thành giải pháp lý tưởng cho email giao dịch.  

Ngoài ra, sử dụng PHP để gửi email cho phép bạn tận dụng nhiều thư viện email và tích hợp được xây dựng xung quanh nó. Các thư viện này thường cung cấp các giải pháp nâng cao như xác thực email, chống thư rác và theo dõi email, giúp bạn quản lý email giao dịch dễ dàng hơn

Các phương thức gửi email trong PHP

Có một vài phương pháp mà bạn có thể sử dụng để gửi email bằng PHP có thể được chia thành hai loại. Sử dụng hàm PHP mail[] tích hợp và sử dụng các thư viện email

1. Sử dụng hàm PHP mail[]

Hàm mail[] tích hợp sẵn của PHP là một trong những cách đơn giản nhất để gửi email trực tiếp từ chính máy chủ web. Nó chỉ cần ba tham số bắt buộc. địa chỉ email, chủ đề email và nội dung thư—và gửi nó đến người nhận

Để gửi email bằng chức năng này, bạn cần đảm bảo rằng máy chủ web của bạn được cấu hình đúng cách. Điều này liên quan đến việc cài đặt một máy chủ thư như Sendmail, Postfix hoặc Qmail và thiết lập nó để gửi email từ trang web của bạn

Nếu bạn sử dụng Linux hoặc Unix, bạn có thể sử dụng chương trình Sendmail hoặc Qmail để gửi email. Nếu bạn sử dụng Windows, bạn có thể cài đặt chương trình Sendmail và đặt sendmail_path trong php. ini để trỏ đến tệp thi hành.  

Có một cách dễ dàng hơn và nhanh hơn để gửi email bằng PHP với chức năng bổ sung, bao gồm việc thiết lập máy chủ SMTP. Chúng ta sẽ giải quyết vấn đề này sau

Tham số và cú pháp

Đoạn mã sau cho biết cách sử dụng chức năng thư PHP để gửi email và các tham số phổ biến của nó

Đây là ý nghĩa của từng tham số

  • $ đến. Địa chỉ email hoặc các địa chỉ mà email sẽ được gửi đến. Nó phải tuân thủ RFC 2822

  • chủ đề $. Chủ đề email của bạn. Tham số này không được chứa bất kỳ ký tự xuống dòng nào và phải tuân thủ RFC 2047

  • tin nhắn $. Nội dung email của bạn. Mỗi dòng phải được phân tách bằng dấu LF [\n]. Các dòng không được vượt quá 70 ký tự

  • $headers [Tùy chọn]. Các tiêu đề bổ sung để đưa vào email ở dạng CC hoặc BCC

  • tham số $ [Tùy chọn]. Chỉ định một tham số bổ sung cho chương trình Sendmail [tham số được xác định trong cài đặt cấu hình sendmail_path]

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

Hàm mail[] trong PHP được sử dụng để gửi cả email văn bản và HTML. Tuy nhiên, để gửi thư HTML, bạn cần đưa tiêu đề Kiểu nội dung phù hợp vào email

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

Đoạn mã sau cho biết cách gửi email HTML với chức năng





Office supplies for March





We need the following office supplies

ItemQuantityMonthDepartment Notebook10MarchOperations Chair5MarchMarketing '; // To send HTML emails, remember to set the Content-type header $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Other additional headers $headers[] = 'To: John , Mary '; $headers[] = 'From: Supply Reminders '; $headers[] = 'Cc: name@example.com'; $headers[] = 'Bcc: name@example.com'; // Mail it mail[$to, $subject, $message, implode["\r\n", $headers]]; ?>

Giới hạn hàm PHP mail[]

Chức năng thư PHP là cách cơ bản nhất để gửi email từ PHP. Do những hạn chế của nó, nó chủ yếu phù hợp để gửi thông báo dựa trên văn bản đơn giản trong môi trường cục bộ.  

Hạn chế lớn nhất của nó là khi email được gửi từ máy chủ web của bạn, khả năng gửi của bạn sẽ bị ảnh hưởng do khả năng có thư rác và danh sách chặn. Có một vài lý do cho việc này

  • Thư PHP[] không hỗ trợ xác thực SMTP hoặc sử dụng máy chủ SMTP bên ngoài. Điều này có nghĩa là nó không cung cấp bất kỳ tính năng chặn thư rác hoặc danh sách chặn nào, do đó, thư email của bạn có thể dễ dàng nằm trong thư mục rác của người nhận

  • PHP không thực hiện tốt công việc đặt tiêu đề email chính xác. Điều này có thể dẫn đến lỗi khiến email bị gắn cờ là thư rác

  • Email được gửi bằng thư PHP [] có thể bị chặn. Một số Nhà cung cấp dịch vụ Internet [ISP] không cho phép gửi email bằng PHP mail[] như một hình thức chống thư rác

Đây là lý do tại sao để gửi email giao dịch, một dịch vụ như MailerSend được khuyến nghị. Máy chủ SMTP của MailerSend sẽ cho phép bạn khắc phục những sự cố này, mặc dù chúng tôi khuyên bạn nên sử dụng API email để nhận được chức năng bổ sung và các tính năng cốt lõi, chúng tôi sẽ thảo luận chi tiết hơn trong bài viết này.  

Những hạn chế hơn nữa bao gồm

  • Nó không phù hợp để gửi khối lượng email lớn hơn. Chức năng thư PHP mở và đóng ổ cắm SMTP cho mọi email, khiến nó cực kỳ kém hiệu quả. Hơn nữa, bạn bị giới hạn số lượng tin nhắn bạn có thể gửi mỗi ngày

  • Nó không cho phép bạn thêm tệp đính kèm. Vì vậy, việc nhúng bất kỳ hình ảnh hoặc tệp nào vào mẫu email HTML sẽ không thể thực hiện được nếu không có gói thư bên ngoài. Bạn cũng cần dựa vào các thư viện bên ngoài nếu muốn làm việc từ máy chủ localhost

2. Sử dụng thư viện email

Một cách gửi email tiên tiến, an toàn và hiện đại hơn trong PHP là sử dụng các gói và tích hợp thư hoặc bằng cách sử dụng API email. Các gói email phổ biến nhất là. PHPMailer, Mailer và PEAR

Khuyến khích. Sử dụng API email

Gửi email bằng PHP bằng các phương pháp cơ bản có thể là một thách thức, đặc biệt nếu bạn muốn có nhiều chức năng và tùy chọn tùy chỉnh hơn.  

API email của MailerSend là giải pháp tốt nhất cho việc này.  

API email chắc chắn là tùy chọn mạnh mẽ nhất. Chúng tôi không chỉ làm cho nó dễ triển khai mà bạn còn có thể gọi mọi điểm cuối của ứng dụng MailerSend từ dự án của mình và tận hưởng quyền truy cập vào tất cả các tính năng.  

Tận dụng tính năng cá nhân hóa nâng cao, quản lý danh sách chặn, các mẫu phản hồi được thiết kế chuyên nghiệp và xác thực người gửi bằng các giao thức bảo mật SPF, DKIM và DMARC

SDK chính thức hỗ trợ PHP 7. 4 và PHP 8 và sử dụng các Đề xuất tiêu chuẩn PHP như Máy khách HTTP và giao diện thông báo HTTP

Để bắt đầu gửi email bằng PHP bằng MailerSend, chúng tôi khuyên bạn nên cài đặt triển khai trước bằng lệnh sau

________số 8

Sau đó, bạn có thể cài đặt SDK PHP chính thức của chúng tôi

composer require mailersend/mailersend

Để giúp bạn bắt đầu, hãy xem đoạn mã sau để gửi email bằng PHP mà bạn có thể sao chép và dán vào tệp PHP

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
0

Nếu bạn không định gửi nội dung HTML thì không sao. Mã này vẫn hoạt động đối với nội dung chỉ có văn bản

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
1

Trước khi bắt đầu gửi email cho người nhận, đừng quên kiểm tra email của bạn. Đảm bảo gửi email kiểm tra đến địa chỉ nội bộ của riêng bạn và kiểm tra kỹ xem định dạng có đúng không và chi tiết kết nối máy chủ có được định cấu hình đúng không

MailerSend PHP SDK cũng cung cấp nhiều phương pháp khác mà bạn có thể sử dụng tùy theo sở thích của mình. Chẳng hạn, bạn có thể sử dụng các mẫu, thẻ và biến email mạnh mẽ có sẵn thông qua API email MailerSend.  

Dưới đây, bạn có thể tìm thấy các ví dụ. Gửi email dựa trên mẫu, gửi email có tệp đính kèm và cá nhân hóa email bằng các biến

Gửi email dựa trên mẫu trong PHP

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
2

Gửi email bằng PHP với tệp đính kèm

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
3

Có rất nhiều ví dụ mã PHP có sẵn để bạn tùy ý sử dụng, bao gồm cách quản lý thư, email hàng loạt, người nhận, webhook, mã thông báo, v.v.  

Để có cái nhìn đầy đủ về những điều này, vui lòng truy cập trang SDK dành cho PHP chính thức và biết thêm chi tiết về cách sử dụng API email

Sử dụng PHPMailer

PHPMailer là thư viện phổ biến nhất để gửi email từ các ứng dụng PHP. Nó cung cấp một giao diện rất dễ sử dụng và tích hợp với máy chủ SMTP mà bạn chọn

Thư viện PHPMailer cho phép bạn gửi email từ localhost với máy chủ SMTP. Chức năng của nó cho phép bạn gửi cả email HTML và email văn bản thuần túy. Mặc dù đây là một giải pháp tốt, nhưng việc gửi email bằng SMTP chủ yếu được sử dụng trong các ứng dụng cũ nên có thể có vấn đề về bảo mật, ngoài ra, nó không cho phép nhiều tùy chọn tùy chỉnh như với API

API email mạnh mẽ của MailerSend cho phép bạn bắt đầu gửi email nhanh chóng và an toàn

Để sử dụng PHPMailer, trước tiên bạn cần cài đặt nó bằng Composer. Để làm như vậy, hãy mở một thiết bị đầu cuối và chạy lệnh sau

';
$message .= 'Hi Jane!';
$message .= '

Will you marry me?

'; $message .= ''; // Sending email if[mail[$to, $subject, $message, $headers]]{ echo 'Your mail has been sent successfully.'; } else{ echo 'Unable to send email. Please try again.'; } ?>
4

Khi PHPMailer được cài đặt, bạn có thể bắt đầu gửi email. Bước đầu tiên là tạo một thể hiện mới của lớp PHPMailer

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
0

Tiếp theo, bạn sẽ cần thiết lập cài đặt máy chủ email của mình. Các cài đặt này bao gồm địa chỉ máy chủ SMTP, số cổng SMTP, tên người dùng và mật khẩu. Bạn có thể tìm thấy các cài đặt này trên trang web của nhà cung cấp dịch vụ email của mình.  

Với mục đích của ví dụ này, chúng tôi sẽ sử dụng máy chủ SMTP của MailerSend, đây là một cách an toàn và đáng tin cậy để gửi email

Khi bạn có cài đặt máy chủ, hãy đặt chúng trong lớp PHPMailer

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
1

Sau khi cài đặt được định cấu hình, bạn có thể gửi email bằng cách gọi phương thức send[]

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
2

Điều này sẽ gửi email. Nếu bạn muốn gửi email HTML, bạn có thể sử dụng phương thức html[]

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
3

Ngoài ra, bạn có thể thêm tệp đính kèm vào email của mình bằng cách sử dụng phương thức addAttachment[]

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
4

Bạn có thể gửi email có tệp đính kèm bằng cách bao gồm tên tệp và nội dung của tệp đính kèm trong phương thức send[]

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
5

Để thêm người nhận vào email của bạn, bạn có thể sử dụng phương thức addAddress[]

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
6

Thao tác này sẽ thêm địa chỉ email "email@example. com" vào danh sách người nhận. Bạn cũng có thể thêm nhiều người nhận bằng cách tách họ bằng dấu phẩy

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
7

Thao tác này sẽ thêm các địa chỉ email "email1@example. com" và "email2@example. com" vào danh sách người nhận

Nếu bạn muốn kiểm tra bất kỳ lỗi tin nhắn tiềm ẩn nào [chúng tôi khuyên bạn nên làm. ], thay vì gọi trực tiếp phương thức send[] và gửi email, hãy sử dụng điều kiện sau trong tập lệnh của bạn

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
8

Thao tác này sẽ hiển thị thông báo lỗi nếu tập lệnh của bạn không gửi được và thông báo thành công nếu tập lệnh được gửi qua

Ghi chú. Thư viện PHPMailer cung cấp nhiều phương thức khác mà bạn có thể sử dụng để gửi email. Để biết thêm thông tin, vui lòng tham khảo tài liệu PHPMailer

Gửi email bằng PHP ngay bây giờ

Bây giờ bạn đã sẵn sàng để bắt đầu gửi email bằng PHP. Phương pháp phù hợp sẽ tùy thuộc vào nhu cầu và sở thích của bạn, nhưng đối với chức năng nâng cao cũng như khả năng gửi và bảo mật tăng lên, API email của MailerSend sẽ hỗ trợ bạn

Chúng tôi rất tò mò, bạn sẽ sử dụng gì để gửi email PHP của mình? .  

Sẵn sàng để gửi email của bạn trong PHP?

MailerSend giúp bạn tích hợp chức năng email mạnh mẽ vào các ứng dụng web của mình thông qua SMTP hoặc API. Tham gia MailerSend miễn phí ngay hôm nay và nhận 12.000 email/tháng

Chúng tôi có thể gửi email từ máy chủ cục bộ PHP không?

Thư viện PHPMailer cung cấp cách dễ dàng nhất để gửi email từ máy chủ cục bộ với máy chủ SMTP bằng PHP . Không chỉ email văn bản mà bạn còn có thể gửi email HTML từ localhost bằng PHP bằng PHPMailer.

Làm cách nào tôi có thể gửi thư từ Gmail bằng PHP?

Có ba bước chính trong việc này. .
Viết mã PHP. Mã của chúng tôi sẽ sử dụng hàm mail[]
Tạo Mật khẩu ứng dụng từ trang Cài đặt quyền và bảo mật của Google
Định cấu hình và cập nhật Postfix

Tại sao PHP không gửi email?

Ví dụ: có thể do bạn thiếu các tham số cần thiết, có lỗi chính tả trong địa chỉ email của người nhận hoặc cần thiết lập chuyển tiếp SMTP. Out of all the possible options as to why your PHP mail[] isn't sending email, we found that most issues stem from Postfix being configured incorrectly.

Email trong PHP là gì?

Hàm PHP mail[] dùng để gửi email bằng PHP . Bạn có thể gửi tin nhắn văn bản, tin nhắn html và tệp đính kèm với tin nhắn bằng hàm PHP mail[].

Chủ Đề