Bạn đã mua một miền và tạo tài khoản email đầu tiên của mình. Đã đến lúc gửi một số email, nhưng bạn không hoàn toàn chắc chắn về cách thực hiện việc đó
Nếu trang web hoặc ứng dụng web của bạn được xây dựng trên PHP, bạn có thể gửi email qua tính năng thư PHP. Điều này có thể hữu ích để tạo các biểu mẫu thư được tạo tùy chỉnh và gửi các email dựa trên văn bản đơn giản
Thông thường, có hai tùy chọn để gửi email bằng PHP – hàm PHP mail[] sẵn có hoặc thư viện gửi thư như PHPMailer
Trong hướng dẫn này, chúng tôi sẽ đề cập đến sự khác biệt giữa hàm PHP mail[] và PHPMailer và chỉ cho bạn cách gửi email bằng chúng
Tại sao và khi nào sử dụng Thư PHP?
Chúng tôi khuyên bạn nên sử dụng gói gửi thư PHP bên ngoài nếu bạn muốn gửi nhiều email an toàn hơn. Hàm PHP mail[] gốc không phù hợp với số lượng lớn email, vì nó mở và đóng kết nối ổ cắm Giao thức truyền thư đơn giản [SMTP] với mỗi email
Tạo dựng uy tín thương hiệu với dịch vụ lưu trữ email chuyên nghiệp. Nhận dịch vụ lưu trữ email
Có nhiều gói thư PHP để lựa chọn, bao gồm Pear Mail và Swift Mailer. Trong bài viết này, chúng tôi sẽ sử dụng PHPMailer
Trước khi bắt đầu, đây là tóm tắt nhanh về ưu và nhược điểm của hàm PHP mail[] và PHPMailer
mail[] ưu điểm
- Đã được cài đặt sẵn và sẵn sàng sử dụng, tất cả những gì bạn cần là có PHP
- Tương thích ngược để thay đổi phiên bản PHP sẽ không phá vỡ tập lệnh
- Dễ dàng để tìm hiểu và sử dụng
mail[] nhược điểm
- Khó thiết lập với SMTP, điều này sẽ kích hoạt bộ lọc SPAM của người nhận
- Không phù hợp để gửi một số lượng lớn email
- Gửi email là một quá trình phức tạp. Do đó, chỉ sử dụng hàm mail[] là không đủ. Do đó, các thư viện bên ngoài như PHPMailer được khuyến nghị thay thế
Ưu điểm của PHPMailer
- Giới thiệu các cấu trúc email phức tạp, chẳng hạn như tài liệu HTML và tệp đính kèm
- Hỗ trợ SMTP và xác thực được tích hợp qua SSL và TLS
- Có thể được sử dụng để gửi số lượng lớn email trong thời gian ngắn
Nhược điểm của PHPMailer
- Yêu cầu cài đặt
- Phải mất một thời gian để làm quen và tìm hiểu logic
Cách sử dụng PHPMailer để gửi email
PHPMailer là thư viện gửi mail phổ biến hỗ trợ gửi qua hàm mail[] hoặc qua SMTP server. Nó cấp quyền truy cập vào một tập hợp các chức năng để gửi email, đơn giản hóa quá trình định cấu hình thư PHP
Cài đặt PHPMailer
Việc cài đặt PHPMailer khá đơn giản, đặc biệt nếu bạn đã cài đặt Composer. Các gói lưu trữ đám mây và chia sẻ của chúng tôi bao gồm hai phiên bản của phần mềm này
Nếu bạn cần phiên bản Composer cũ hơn, hãy sử dụng lệnh composer. Mặt khác, nếu bạn cần một phiên bản mới hơn hoặc phiên bản PHP của bạn là 8+, hãy sử dụng lệnh composer2
Để cài đặt PHPMailer theo cách thủ công, hãy làm theo các bước sau
- Kết nối với tài khoản của bạn thông qua ứng dụng khách SSH
- Từ bảng điều khiển hPanel của bạn, đi tới Nâng cao → Truy cập SSH và lưu ý IP, cổng, tên người dùng và mật khẩu SSH trong chi tiết SSH
- Mở PuTTY và nhập thông tin SSH của bạn vào các trường Tên máy chủ [hoặc địa chỉ IP] và Cổng. Sau đó, nhấp vào Mở
- Khi một cửa sổ lệnh xuất hiện, hãy nhập tên người dùng và mật khẩu SSH của bạn và nhấn Enter. Hãy nhớ rằng PuTTY sẽ không hiển thị mật khẩu, vì vậy đừng ngạc nhiên nếu nó không xuất hiện trên màn hình
- Thực hiện lệnh sau để điều hướng đến thư mục public_html
cd public_html
- Sau đó, chạy lệnh sau
composer2 require phpmailer/phpmailer
- Đợi một lát cho đến khi quá trình cài đặt kết thúc. Đây là những gì nó sẽ trông giống như
Hiểu các thành phần PHPMailer
Để hiểu cách thức hoạt động của PHPMailer, hãy xem lại từng thành phần tập lệnh ở trên
use PHPMailer\PHPMailer\PHPMailer;
Dòng trên nhập lớp PHPMailer vào không gian tên chung
require '../vendor/autoload.php';
Dòng này bao gồm các thư viện khác nhau mà PHPMailer cần
$mail = new PHPMailer;
Điều này tạo ra một đối tượng PHPMailer mới
$mail->isSMTP[];
Mã ở đây yêu cầu lớp PHPMailer sử dụng cấu hình SMTP tùy chỉnh được xác định trong tập lệnh thay vì máy chủ thư cục bộ
$mail->SMTPDebug = 2;
Lệnh SMTPDebug cho phép bạn phát hiện nếu có sự cố xảy ra với kết nối SMTP
$mail->Host = 'smtp.hostinger.com';
Đây là nơi chỉ định địa chỉ máy chủ SMTP
________số 8_______Đặt cổng SMTP tại đây
$mail->SMTPAuth = true;
Dòng này được sử dụng để bật xác thực SMTP
composer2 require phpmailer/phpmailer0
Chỉ định địa chỉ email của bạn ở đây
composer2 require phpmailer/phpmailer1
Tại đây, nhập mật khẩu email của bạn
composer2 require phpmailer/phpmailer2
Đây là nơi bạn chèn địa chỉ email của người gửi
composer2 require phpmailer/phpmailer3
Dòng này sẽ cho người nhận biết họ nên trả lời địa chỉ nào
composer2 require phpmailer/phpmailer4
Chèn địa chỉ của người nhận vào đây
composer2 require phpmailer/phpmailer5
Thêm dòng chủ đề của email tại đây
composer2 require phpmailer/phpmailer6
Dòng này đọc nội dung thư HTML từ tệp bên ngoài. Hàm file_get_contents[] sẽ tải nội dung từ tin nhắn. html, một tệp cục bộ nằm trong thư mục public_html và đưa nó vào thư
composer2 require phpmailer/phpmailer7
Dòng này chứa nội dung thư
Mẹo chuyên nghiệp
Tránh "kiểm tra" và "kiểm tra" trong nội dung hoặc chủ đề email. Những điều khoản như vậy có thể khiến máy chủ thư của người nhận nghi ngờ bạn đang gửi thư rác và chặn email
composer2 require phpmailer/phpmailer8
Nếu bạn muốn bao gồm tệp đính kèm, hãy bao gồm tên tệp và xóa dấu gạch chéo kép khỏi câu lệnh này
composer2 require phpmailer/phpmailer9
Dòng này xác định điều gì sẽ xảy ra khi tập lệnh được thực thi
use PHPMailer\PHPMailer\PHPMailer;
0Thao tác này sẽ hiển thị thông báo lỗi cùng với lời giải thích nếu tập lệnh không gửi được
use PHPMailer\PHPMailer\PHPMailer;
1}else{ mở rộng câu lệnh if và mô tả điều gì sẽ xảy ra nếu điều kiện trước đó không được đáp ứng
use PHPMailer\PHPMailer\PHPMailer;
2Giả sử email đã được gửi thành công, thông báo này sẽ xuất hiện
Mẹo chuyên nghiệp
SMTPDebug = 2; . Nhớ đổi thành SMTPDebug = 0;
Sử dụng PHPMailer với Hostinger SMTP
Sau khi cài đặt PHPMailer, cuối cùng bạn cũng có thể bắt đầu gửi email PHP
Trong phần này, chúng tôi sẽ hướng dẫn bạn cách gửi email thông qua máy chủ SMTP của Hostinger bằng PHPMailer
Mẹo chuyên nghiệp
Nếu bạn đang sử dụng Titan Mail, hãy sử dụng máy chủ SMTP của nó để thay thế
- Tạo tài khoản email bằng cách truy cập hPanel, sau đó vào Emails → Email Accounts → Create email account
- Điền địa chỉ email mới và đặt mật khẩu. Sau đó, nhấp vào Tạo. Hãy nhớ thông tin này vì bạn sẽ sử dụng nó để gửi thư qua PHPMailer
- Từ cùng một trang, đi tới Cài đặt cấu hình → Cấu hình thủ công và lưu ý Cổng SMTP và Tên máy chủ
- Truy cập bảng điều khiển hPanel và điều hướng đến Tệp → Trình quản lý tệp. Click vào thư mục public_html chọn Add New để tạo file mới. Đặt tên cho tệp phpmailer. php và nhấp vào Tạo
- Nhấp đúp vào phpmailer. php và sao chép và dán mã bên dưới. Sửa đổi nó cho phù hợp. Đảm bảo thay thế mymail@myawesomedomain. tld và người nhận@miền. tld với các miền hiện có và My$tr0ngPa55w0rd. với mật khẩu tài khoản email của bạn
use PHPMailer\PHPMailer\PHPMailer;
3- Sau khi chỉnh sửa mã, nhấp vào Lưu & Đóng. Để thực thi tập lệnh, hãy nhập tên miền của bạn. tld/phpmailer. php trong trình duyệt web của bạn
Tạo biểu mẫu liên hệ PHPMailer
Ngoài việc sử dụng PHPMailer để gửi thư PHP đơn giản, người dùng cũng có thể sử dụng nó để tạo biểu mẫu liên hệ, cho phép khán giả liên hệ với họ
Tương tự như các tập lệnh PHP trước đây, việc tạo một tệp PHP mới trong thư mục public_html là điều cần thiết trước khi tiếp tục. Đặt tên cho nó. php
Sao chép và dán tập lệnh bên dưới vào tệp mới tạo và sửa đổi thông tin bên trong cho phù hợp
use PHPMailer\PHPMailer\PHPMailer;
4Mẹo chuyên nghiệp
Lấy đầu vào của người dùng từ $_POST và sử dụng nó không được làm sạch sẽ không an toàn do các cuộc tấn công kịch bản chéo trang [XSS]. Để tránh điều này, hãy xem các phương pháp hay nhất để khử trùng biến PHP
Lưu các thay đổi của bạn, sau đó chạy tập lệnh từ trình duyệt của bạn
Đây là kết quả sẽ như thế nào
Nếu khách truy cập gửi tin nhắn qua biểu mẫu, họ sẽ nhận được thông báo xác nhận và nội dung của biểu mẫu sẽ đến hộp thư đến của địa chỉ email bạn đã nhập tại đây
composer2 require phpmailer/phpmailer4
Mẹo chuyên nghiệp
Nếu biểu mẫu liên hệ PHPMailer không hoạt động, hãy thay đổi $mail->SMTPDebug = 0; . Đừng quên xóa dòng hoặc thay đổi 2 thành 0 sau đó
Để xem các ví dụ khác về cách sử dụng thư viện gửi email này, hãy truy cập kho lưu trữ chính thức của PHPMailer trên GitHub
Nếu bạn là người dùng WordPress, thay vào đó, bạn có thể sử dụng các plugin biểu mẫu liên hệ như Formidable Forms, Gravity Forms hoặc WPForms để tạo biểu mẫu liên hệ
Cách gửi email bằng hàm PHP Mail[]
Một phương pháp khác để gửi email trực tiếp từ tập lệnh PHP là hàm mail[] tích hợp sẵn. Để sử dụng tính năng gửi thư PHP, người dùng lưu trữ ứng dụng hoặc trang web PHP của họ trên máy chủ cục bộ sẽ cần định cấu hình chương trình Sendmail bằng cách thay đổi tệp php. ini trong thư mục cài đặt PHP của họ
Nếu bạn sử dụng máy chủ lưu trữ, Sendmail thường được cấu hình sẵn. Tuy nhiên, bạn phải đảm bảo rằng nhà cung cấp dịch vụ lưu trữ của bạn cho phép bạn quản lý tùy chọn dịch vụ Sendmail theo cách thủ công
Người dùng Hostinger có thể chuyển đổi chức năng này bằng cách truy cập hPanel và điều hướng đến Email → Mail Service Control
Theo mặc định, dịch vụ Sendmail đã được bật sẵn. Tuy nhiên, hãy kiểm tra lại để chắc chắn
Quan trọng. Chức năng PHP Mail sẽ được bật mặc định nếu bạn sử dụng Titan Mail. Do đó, không thể bật hoặc tắt nó trong hPanel
Hiểu các thành phần thư PHP
Để giúp bạn hiểu hàm PHP mail[], chúng tôi sẽ xem xét các thành phần của tập lệnh PHP mà chúng tôi đã sử dụng trong phần trước
use PHPMailer\PHPMailer\PHPMailer;
6Hai dòng đầu tiên ở trên cho phép báo lỗi để thông báo cho bạn nếu tập lệnh PHP không thực thi được
use PHPMailer\PHPMailer\PHPMailer;
7Dòng này phải chứa địa chỉ email của người gửi. Hầu hết các nhà cung cấp dịch vụ lưu trữ cấm thêm địa chỉ email ngẫu nhiên vào đây, vì nó có thể được sử dụng để giả mạo. Vì vậy, tốt hơn hết bạn nên sử dụng tên miền của mình để thực thi thành công tập lệnh
use PHPMailer\PHPMailer\PHPMailer;
8Địa chỉ email của người nhận ở đây. Để gửi thư cho nhiều người nhận, hãy phân tách các địa chỉ email bằng dấu phẩy
use PHPMailer\PHPMailer\PHPMailer;
9Nhập dòng chủ đề cho email tại đây
require '../vendor/autoload.php';
0Tại đây, hãy nhập nội dung email của bạn
require '../vendor/autoload.php';
1Dòng này thường được sử dụng để thêm các tiêu đề bổ sung, chẳng hạn như Từ, Trả lời đến và Cc – các tiêu đề bổ sung này phải được phân tách bằng CRLF
require '../vendor/autoload.php';
2Dòng này được sử dụng để thực thi chức năng và kiểm tra xem nó đã chạy thành công chưa
require '../vendor/autoload.php';
3Thông báo trên sẽ xuất hiện khi tập lệnh được thực thi thành công
require '../vendor/autoload.php';
4Ngoài ra, thông báo này sẽ được hiển thị nếu nó không thành công
Hãy nhớ rằng mặc dù các tiêu đề bổ sung là tùy chọn, nhưng điều cần thiết là phải đề cập đến tiêu đề Từ khi gửi thư. Nếu không, bạn sẽ nhận được thông báo như thế này
require '../vendor/autoload.php';
5Để biết thêm thông tin về chức năng Sendmail và các tham số của nó, hãy tham khảo tài liệu PHP chính thức
Tạo tệp thử nghiệm cho thư PHP
Sau khi đảm bảo rằng Sendmail đang hoạt động, chúng ta phải tạo một tệp tập lệnh thư PHP và đặt nó vào thư mục public_html
Đây là cách thực hiện
- Từ hPanel, điều hướng đến Tệp → Trình quản lý tệp để truy cập Trình quản lý tệp của Hostinger
- Bấm đúp vào thư mục public_html và chọn biểu tượng Tệp mới ở trên cùng. Đặt tên cho tệp mới này là testmail. php, sau đó nhấn Tạo
- Nhấp đúp vào testmail. php để chỉnh sửa nó. Bạn có thể sử dụng mã PHP cơ bản bên dưới nhưng thay đổi các tham số cho phù hợp. Chúng tôi sẽ mô tả các thành phần tập lệnh chi tiết hơn trong tiểu mục sau
require '../vendor/autoload.php';
6- Nhấp vào Lưu & Đóng sau khi hoàn tất
- Gửi email bằng cách truy cập yourdomain/testmail. php từ trình duyệt web của bạn. Nhớ đổi “yourdomain” thành tên miền dùng khi tạo testmail. php
Gửi thư HTML bằng PHP
Hàm PHP mail[] cũng có thể được sử dụng để gửi email có định dạng HTML. Định dạng này có khả năng tùy biến cao so với tin nhắn văn bản thuần túy
Quy trình gửi thư HTML cũng giống như vậy, nhưng lần này bạn cần gửi thư HTML và các tiêu đề tham số bổ sung
Dưới đây là một ví dụ về tập lệnh cơ bản để gửi email có định dạng HTML
require '../vendor/autoload.php';
7Cách khắc phục các lỗi PHP Mail và PHPMailer phổ biến
Trong phần sau, chúng ta sẽ xem xét một số vấn đề phổ biến nhất có thể xảy ra khi sử dụng hàm PHP mail[] hoặc PHPMailer và cách khắc phục chúng
Địa chỉ người gửi bị từ chối. Không thuộc sở hữu của người dùng
Lỗi này có nghĩa là máy chủ không thể xác thực người gửi bằng các chi tiết được cung cấp. Để khắc phục, hãy kiểm tra địa chỉ email bạn đã sử dụng để gửi thư và đảm bảo địa chỉ đó tương ứng với địa chỉ hiện có
Ngoài ra, hãy đảm bảo Khung chính sách người gửi [SPF] của bạn được bật. Nếu bạn sử dụng Hostinger, hãy kiểm tra bản ghi SPF của bạn bằng cách truy cập hPanel và điều hướng đến Email → Tài khoản email → Cài đặt DNS → Quản lý gửi email
Nếu bản ghi SPF được bật, nó sẽ được hiển thị là Đang hoạt động
Gmail không thể xác minh tên miền đó. TLD đã gửi tin nhắn này
Nếu bạn thấy cảnh báo này khi kiểm tra tập lệnh thư PHP, nguyên nhân có thể là do một trong các nguyên nhân sau
- Không có bản ghi SPF trong Vùng DNS của miền. Nếu bản ghi bị thiếu hoặc bạn đang sử dụng máy chủ định danh bên ngoài, hãy thêm bản ghi SPF TXT mới theo cách thủ công qua hPanel hoặc cPanel
- Bạn đã sử dụng chi tiết xác thực SMTP không hợp lệ. Đảm bảo sử dụng địa chỉ email tồn tại và thuộc về bạn
Thư Chuyển đến Thư mục Thư rác
Có nhiều lý do khiến thư PHP có thể kích hoạt bộ lọc thư rác. Một số ví dụ phổ biến nhất bao gồm
- Chủ đề gây hiểu lầm hoặc giống như thư rác. Ví dụ bao gồm việc sử dụng các thuật ngữ như “thử nghiệm” hoặc “khẩn cấp. ” Đảm bảo đặt mục đích rõ ràng trong dòng Chủ đề
- Địa chỉ người gửi không chính xác. Điều này có thể gọi các biện pháp bảo mật để lọc email của bạn nhằm ngăn chặn email giả mạo và lừa đảo
- Sử dụng các từ kích hoạt thư rác. Điều này bao gồm các cụm từ như “ưu đãi tuyệt vời” và “đây không phải là thư rác. ” Hãy thử thay đổi nội dung tin nhắn của bạn để xem đây có phải là sự cố không
- Danh sách gửi thư của bạn không có liên kết hủy đăng ký. Đảm bảo bao gồm nút hủy đăng ký để ngăn chặn sự cố này và tạo niềm tin cho người đọc
Phần kết luận
Gửi email là một chiến lược tiếp thị cơ bản cho bất kỳ doanh nghiệp hoặc trang web nào. Hàm PHP mail[] phù hợp để gửi một lượng nhỏ tin nhắn dựa trên văn bản đơn giản. Trong khi đó, PHPMailer là phương pháp tốt hơn và an toàn hơn để gửi email hàng loạt hoặc tạo biểu mẫu liên hệ
Để gửi email bằng tính năng thư PHP, hãy tạo một tệp PHP mới trong thư mục public_html và nhập hàm mail[]. Sau đó, thực thi tập lệnh bằng trình duyệt web của bạn
Đối với việc gửi email bằng PHPMailer, bạn sẽ cần cài đặt một công cụ chuyên dụng, tạo một tài khoản email cho nó và bao gồm các giá trị từ cài đặt SMTP của bạn trong tập lệnh của PHPMailer. Tạo một tệp PHP mới trong thư mục public_html cũng rất cần thiết
Trong hướng dẫn này, chúng tôi đã giới thiệu quá trình cài đặt PHPMailer và tạo tập lệnh thử nghiệm cùng với biểu mẫu chức năng. Chúng tôi cũng đã đề cập đến quá trình gửi email bằng hàm PHP mail[]
Chúng tôi hy vọng bạn thấy hướng dẫn này hữu ích. Nếu bạn có thêm bất kỳ câu hỏi nào, hãy để lại chúng trong phần bình luận
Tác giả
Domantas G
Domantas dẫn dắt các nhóm nội dung và SEO về phía trước với những ý tưởng mới và phương pháp tiếp cận vượt trội. Được trang bị kiến thức sâu rộng về SEO và tiếp thị, anh đặt mục tiêu quảng bá Hostinger đến mọi nơi trên thế giới. Trong thời gian rảnh rỗi, Domantas thích trau dồi kỹ năng phát triển web của mình và đi du lịch đến những nơi xa lạ
Thêm từ Domantas G
Đồng tác giả
Ignas R
Ignas rất hài lòng khi giúp mọi người giải quyết ngay cả những vấn đề kỹ thuật phức tạp nhất. Mục tiêu hiện tại của anh ấy là viết những bài dễ theo dõi để những vấn đề này sẽ không xảy ra nữa. Trong thời gian rảnh rỗi, Ignas thích chơi trò chơi điện tử và sửa chữa mọi thứ xung quanh nhà của mình