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
Show
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ư PHPKhi 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:
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 / GettyNế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
Ví dụ: script pear mail php cho smtp mailBạ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"; ". $ mail-> getMessage ()." ");} khác {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 SSLNế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"; ". $ mail-> getMessage ()." ");} khác {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
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:
Nó sử dụng các tham số sau:
Để 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:
Đ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:
Gửi email qua máy chủ SMTP trong PHPTô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. PHPMailerPHPMailer 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:
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 phpmailerLê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:
hoặc chạy
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:
Thêm lớp ngoại lệ sẽ giúp bạn xử lý lỗi và gỡ lỗi chúng. Trong PHP, nó hoạt động tương tự như các ngôn ngữ lập trình khác. Vì vậy, nếu không có nó, nếu có lỗi trong mã gửi email của bạn, bạn sẽ không thấy một tin nhắn nói rằng lớp ngoại lệ không được tìm thấy, nhưng bạn đã giành chiến thắng với bất kỳ chi tiết nào về cách gỡ lỗi. Tôi sẽ mô tả gỡ lỗi là một phần riêng của bài đăng này. Để xem hướng dẫn chi tiết về cài đặt, hãy kiểm tra tài liệu PHPMail trên GitHub. Cấu hình SMTPĐể kiểm tra chức năng thư PHP, tôi sẽ sử dụng MailTrap, một máy chủ SMTP giả, không làm ngập các hộp thư đến của chúng tôi hoặc thậm chí tệ hơn, hộp thư đến của khách hàng của chúng tôi. Khi bạn đảm bảo rằng mọi thứ hoạt động đúng và tin nhắn email của bạn trông đúng, bạn sẽ dễ dàng thay thế các cài đặt SMTP trong các ví dụ của chúng tôi bằng máy chủ thực của bạn, cho dù bạn thích một dịch vụ địa phương hoặc dịch vụ của bên thứ ba, như Gmail. . Nếu bạn chưa sử dụng MailTrap, hãy tạo tài khoản miễn phí, hãy truy cập hộp thư đến của bạn và sao chép các giá trị sau từ tab Cài đặt SMTP vào tập lệnh PHPMailer của bạn:
Gửi email HTML qua SMTP với PHPMailerNhiều khả năng, bạn sẽ sử dụng HTML để thiết kế thông báo email của mình. Vì vậy, hãy để xem xét một số ví dụ về việc sử dụng các phương thức và thuộc tính HTML. Thông báo HTML cơ bản Trong mọi trường hợp, tôi bắt đầu với lớp PHPMailer:
Nếu bạn đã sử dụng Trình soạn thảo để cài đặt, bao gồm tệp AutoLoad.php được tạo của trình soạn thảo:
Bây giờ, hãy để di chuyển đến một cấu hình SMTP: require_once "Mail.php";0 Chỉ định người nhận tin nhắn của bạn: require_once "Mail.php";1 Tùy chọn bạn có thể thêm CC: require_once "Mail.php";2 Đặt chủ đề cho tin nhắn của bạn: require_once "Mail.php";3 Sau đó đặt định dạng email thành HTML với thuộc tính ISHTML (Đúng): require_once "Mail.php";4 Bây giờ bạn có thể nhập nội dung mong muốn: require_once "Mail.php";5 Với PHPMailer, bạn cũng có thể tạo một email HTML đẹp, với định dạng tùy chỉnh, hình ảnh và gửi email với tệp đính kèm. Để thuận tiện cho bạn, PHPMailer cung cấp tùy chọn đọc thân thông báo HTML từ tệp bên ngoài, chuyển đổi hình ảnh được tham chiếu thành nhúng cũng như chuyển đổi HTML thành một cơ thể thay thế văn bản đơn giản cơ bản. Bằng cách này, bạn sẽ không quá tải mã gửi tin nhắn của mình với HTML và sẽ có thể cập nhật mẫu HTML của bạn một cách độc lập. Để bao gồm một tệp HTML riêng biệt, hãy thêm các thuộc tính sau: require_once "Mail.php";6 Cuối cùng, chỉ định các thuộc tính gửi email: require_once "Mail.php";7 Kết quả Tin nhắn đã được gửi cho bạn thông báo cho bạn rằng mã của bạn thực thi chính xác. Để kiểm tra kết quả giao hàng và chi tiết, hãy truy cập hộp thư đến MailTrap của bạn: Tin nhắn của bạn sẽ đến đó trong vài giây. Với MailTrap, bạn sẽ có thể xem lại mã HTML, dữ liệu thô, thực hiện kiểm tra trình duyệt email cũng như đảm bảo tin nhắn của bạn giành được được đánh dấu là spam, hoặc tên miền gửi của bạn đã giành được danh sách đen. Khi bạn đã xác minh rằng kết quả gửi PHPMailer của bạn phù hợp với mong đợi của bạn, bạn có thể chuyển sang gửi email thông thường qua bất kỳ máy chủ SMTP ưa thích nào. Để biết thêm các ví dụ về cấu hình, hãy kiểm tra thư mục Ví dụ trên các tài liệu Phpmailer. Cách gỡ lỗi các vấn đề SMTP trong phpmailerNếu bạn gặp một số rắc rối khi gửi email qua máy chủ SMTP, lệnh smtpdebug sẽ giúp bạn khám phá những lỗi đó và tìm hiểu những gì nên được sửa. Bật gỡ lỗi SMTP và đặt mức gỡ lỗi trong tập lệnh của bạn như sau: require_once "Mail.php";8 Để hiểu rõ hơn về cách gỡ lỗi trong PHPMailer hoạt động, hãy để xem xét một vài ví dụ. Ví dụ 1. Tên máy chủ SMTP không hợp lệ require_once "Mail.php";9 Trong ví dụ này, tôi đã nhập một tên máy chủ không hợp lệ: mailtrap.io thay vì smtp.mailtrap.io. và ngay lập tức nhận được một thông báo rằng một lỗi đã xảy ra ở giai đoạn đầu tiên của giao tiếp với máy chủ. Ví dụ 2. Thông tin xác thực không hợp lệ 0Ví dụ này cho thấy lỗi xảy ra lỗi: bây giờ SMTP, tên máy chủ và cổng của nó là hợp lệ nhưng không tìm thấy kết hợp thông tin đăng nhập và mật khẩu, vì vậy bạn nên kiểm tra kỹ và sửa đổi thông tin đăng nhập của mình. Có một vài bài viết chi tiết về GitHub về việc gỡ lỗi và khắc phục sự cố, hãy tham khảo chúng khi bạn cần đi sâu hơn vào các chủ đề này. Bạn nên xem xét những gì khác về các tùy chọn gửi thư PHP?Trong bài viết này, tôi đã mô tả các nguyên tắc gửi email, cú pháp và tham số của PHP cơ bản. Bên cạnh đó, tôi đã xem xét hai cách chính để gửi email với PHP: chức năng thư tích hợp của nó và PHPMailer, gói thư bên ngoài phổ biến nhất. Không còn nghi ngờ gì nữa, cái thứ hai là một giải pháp nâng cao hơn nhiều, với hỗ trợ xác thực SMTP và một bộ các tính năng liên quan đến HTML rộng lớn, tuy nhiên, chức năng thư PHP () vẫn có thể là một tùy chọn nếu bạn đang gửi thông báo văn bản đơn giản qua localhost. Ngoài phpmailer, còn có một loạt các giải pháp đáng chú ý khác để xây dựng email HTML và gửi nó qua máy chủ SMTP, chẳng hạn như gói Pear Mail, Swift Mailer hoặc Zend Framework. Tôi sẽ xem xét chúng và các tùy chọn gửi thư PHP khác trong các bài đăng trong tương lai. Làm cách nào để gửi thư PHP qua SMTP?Viết mã PHP để gửi email bằng Gmail SMTP.. Bước 1: Tải xuống Thư viện PHPMailer từ liên kết GitHub này. .... Bước 2: Viết mã PHP để tạo kết nối SMTP. .... Bước 3: Bao gồm các gói và tệp cho giao thức PHPMailer và SMTP: .... Bước 4: Khởi tạo Mailer PHP và đặt SMTP làm giao thức gửi thư:. Chúng tôi có thể gửi email qua tập lệnh PHP không?Sử dụng hàm php mail (). Hàm thư tích hợp 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à thân thông báo và gửi nó cho người nhận.PHP's built-in mail() function is one of the simplest ways to send emails directly from the web server itself. It just takes three mandatory parameters: the email address, email subject and message body—and sends it to the recipient.
Php mail gửi email như thế nào?PHP sử dụng hàm mail () để gửi email.Hàm này yêu cầu ba đối số bắt buộc chỉ định địa chỉ email của người nhận, chủ đề của tin nhắn và tin nhắn thực tế cũng có hai tham số tùy chọn khác.mail (đến, chủ đề, tin nhắn, tiêu đề, tham số);mail() function to send an email. This function requires three mandatory arguments that specify the recipient's email address, the subject of the the message and the actual message additionally there are other two optional parameters. mail( to, subject, message, headers, parameters );
Thư PHP có yêu cầu SMTP không?Khi bạn sử dụng chức năng thư PHP, bạn sẽ gửi email trực tiếp từ máy chủ web của mình.Điều này có thể gây ra các vấn đề nếu địa chỉ từ không được đặt đúng hoặc nếu email của bạn không được lưu trữ với Dreamhost.Gửi thư qua SMTP được khuyến nghị vì email được gửi từ máy chủ thư thay vì máy chủ web.Sending mail via SMTP is recommended as email is sent from the mail server rather than the web server. |