Hầu hết mọi người sẽ muốn kích hoạt dịch vụ thư. Điều này cho phép bạn thiết lập địa chỉ email trên máy chủ của mình và gửi và nhận email. Thư được bật theo mặc định
Tại sao tôi lại vô hiệu hóa thư?
Bạn nên tắt dịch vụ thư cục bộ trên máy chủ Jumpline của mình nếu bạn sử dụng dịch vụ của bên thứ ba cho email của mình. Ví dụ: nếu bạn sử dụng Google Apps hoặc máy chủ Microsoft Exchange cho thư của mình, bạn nên tắt dịch vụ thư tại đây. Nếu không, các email được gửi từ máy chủ, chẳng hạn như từ một biểu mẫu trên trang web của bạn hoặc từ một miền khác trên tài khoản dùng chung, có thể được định tuyến không chính xác
Vui lòng thử các bước dưới đâyroot@server [~]# php mail.php sendmail: Not running with correct effective GID. Is sendmail binary setgid mailtrap? sendmail: Not running with correct effective GID. Is sendmail binary setgid mailtrap? root@server [~]#Nếu bạn gặp lỗi như trên, bạn có thể thực hiện các lệnh sau để khắc phục lỗi này
root@server [~]# which sendmail /usr/sbin/sendmail
root@server [~]# chown root:mailtrap /usr/sbin/sendmail root@server [~]# chmod 2755 /usr/sbin/sendmail
Các ứng dụng PHP như WordPress, Joomla, v.v. gửi thư bằng tính năng PHP [còn gọi là hàm] có tên là “mail[]”
Tin tặc chủ yếu khai thác chức năng thư PHP để gửi thư rác
Không có gì lạ khi các công ty lưu trữ web vô hiệu hóa chức năng thư PHP trên máy chủ như một quy tắc chung
Điều này khiến thư từ các ứng dụng như wordpress không thành công với lỗi sau
"The e-mail could not be sent. Possible reason: your host may have disabled the mail[] function."
Chủ sở hữu trang web vẫn cần một cách để gửi thư từ trang web của họ. Tại Bobcares, chúng tôi cung cấp các giải pháp cho chủ sở hữu máy chủ trong các dịch vụ Hỗ trợ dịch vụ lưu trữ thuê ngoài của chúng tôi
Hôm nay, chúng ta hãy thảo luận về hai lý do khiến thư php bị lỗi và cách chúng tôi khắc phục chúng
Điều gì khiến chức năng thư php bị lỗi?
Khi bạn sử dụng chức năng thư PHP, thư được gửi trực tiếp từ danh tính máy chủ web hay còn gọi là người dùng "không ai"
Vì tất cả các yêu cầu web bắt nguồn từ cùng một danh tính “không ai cả”, nên việc theo dõi trang web gửi thư rác thực sự trong máy chủ trở nên khó khăn
Vì vậy, các công ty lưu trữ bảo vệ việc lạm dụng hàm PHP mail [] theo hai cách
1. Ngăn người dùng “nobody” gửi thư
Là một nguồn thư rác đã biết, hầu hết các máy chủ lưu trữ web đều ngăn chặn tất cả các thư có danh tính “không ai cả”
Ví dụ: trong máy chủ cpanel, có tùy chọn TẮT thư từ không ai như trong hình bên dưới
Nhưng hành động này cũng sẽ chặn thư từ người dùng hợp pháp, trừ khi có các tính năng khắc phục trên máy chủ
Vì vậy, Kỹ sư hỗ trợ của chúng tôi kích hoạt các mô-đun php đặc biệt như suphp, fastcgi, v.v. , sử dụng danh tính riêng của trang web để gửi thư
Điều này giúp chúng ta cấu hình mail server để giới hạn số lượng mail gửi từ mỗi website
2. Hàm thư có trong danh sách disable_functions của php
Tin tặc có thể sử dụng một số chức năng php nhất định như “shell_exec”, “system”, v.v. tấn công máy chủ
Vì vậy, các công ty lưu trữ web vô hiệu hóa các chức năng php nguy hiểm như vậy trên máy chủ
Khi hàm PHP mail[] cũng được thêm vào danh sách disable_functions, ngay cả thư từ người dùng hợp pháp cũng bị chặn
Trong các máy chủ như vậy, chúng tôi giúp chủ sở hữu trang web định cấu hình trang web của họ để gửi thư qua cổng SMTP thay vì hàm PHP mail[]
Đối với điều này, chúng tôi thiết lập plugin và mô-đun cho các trang web, chẳng hạn như “WP Mail SMTP” cho wordpress, PHPMailer cho Drupal, v.v.
Bằng cách này, tất cả thư từ các trang web đều bỏ qua chức năng thư PHP và được gửi qua cổng SMTP của máy chủ thư [giống như cách các ứng dụng thư khách như Outlook thực hiện]
Phần kết luận
Lỗi chức năng thư PHP [] thường xảy ra do các hạn chế trong máy chủ Lưu trữ web. Ở đây, chúng tôi đã thảo luận về hai nguyên nhân mà Kỹ sư hỗ trợ của chúng tôi đã thấy và cách chúng tôi khắc phục sự cố đó
Hàm PHP mail[] là một tính năng PHP tích hợp cho phép bạn gửi email trực tiếp từ tập lệnh. Tùy thuộc vào trang web hoặc ứng dụng web của bạn, bạn có thể cần chức năng này để cung cấp trải nghiệm tốt hơn cho khách hàng của mình
Ví dụ: nếu bạn đang điều hành một trang web dựa trên đăng ký, bạn có thể cảm thấy cần gửi thông báo xác minh và thông báo chào mừng qua email. Đây là nơi hàm PHP mail[] xuất hiện. Bạn có thể sử dụng nó trên mã hóa của mình để gửi email tự động mà không cần nhập thủ công từ phía bạn
Một lĩnh vực khác mà bạn có thể sử dụng sức mạnh của chức năng email PHP là trong biểu mẫu liên hệ. Khi khách nhập tin nhắn từ trang liên hệ, bạn có thể sử dụng tính năng gửi một bản sao của tin nhắn đến email của mình. Điều này cho phép bạn nhận email đúng hạn và trả lời nhanh nhất có thể
Hàm PHP mail[] được bật theo mặc định và bạn không cần phải chỉnh sửa php. ini để thiết lập tương tự. Vì vậy, trong hướng dẫn này, chúng tôi sẽ thảo luận về cú pháp chung mà bạn nên sử dụng để gọi hàm gửi email từ tập lệnh PHP
điều kiện tiên quyết
- Một máy chủ web e. g. Apache hoặc Nginx
- ngôn ngữ kịch bản PHP
- Máy chủ email như SendMail hoặc Postfix
Nếu bạn đang sử dụng dịch vụ lưu trữ được chia sẻ, các gói trên được cài đặt và kích hoạt theo mặc định. Tuy nhiên, bạn sẽ cần cài đặt từng ứng dụng phần mềm nếu bạn đang sử dụng gói VPS
Để biết thêm thông tin về các gói này [nhà cung cấp, đánh giá, giá cả và tính năng] – hãy truy cập Đánh giá lưu trữ VPS của HostAdvice và Đánh giá lưu trữ được chia sẻ
Bước 1. PHP mail[] Cú pháp hàm
Cú pháp cơ bản cho hàm PHP mail[] là
mail [to, subject, message, headers, parameters];
Bảng dưới đây tóm tắt ý nghĩa của từng tham số
NoFieldMandatory/OptionalDescriptionExamples1toMandatory Tham số này cho biết người nhận emailinfo@example. com
bán hàng @ ví dụ. com
2subjectMandatoryChứa chủ đề của email. Ký tự dòng mới không được phép Lịch họpchi tiết thanh toán
Kích hoạt tài khoản
3tin nhắnBắt buộcPhần nội dung thực tế của email được gửi tới đâyKhách hàng thân mến, tài khoản của bạn đã được kích hoạt. 4headersTùy chọnĐược sử dụng để bao gồm các tiêu đề email bổ sung, chẳng hạn như. Từ, Cc, Bcc. Các giá trị này phải được phân tách bằng ‘\r\n’From. thanh toán@ví dụ. com”. “\r\n”. ”CC. kế toán@ví dụ. com”5tham sốTùy chọnTại đây, bạn có thể chuyển các cờ bổ sung tới máy chủ emailTrường này ít được sử dụng
'-fbilling@example. com'______5Hãy nhớ thay đổi các giá trị tùy thuộc vào nhu cầu của bạn. Bạn có thể sử dụng tài khoản email của riêng bạn [e. g. Gmail] trên trường 'đến' khi kiểm tra tập lệnh
Khi bạn đã chỉnh sửa xong tệp, hãy lưu nó trên trang web của bạn
Bước 2. Kiểm tra tập lệnh
Bạn có thể chạy tập lệnh email PHP ở trên bằng cách truy cập URL trên trình duyệt. Ví dụ
www.example.com/mail.php
Thay thế 'ví dụ. com’ với tên miền của bạn và ‘mail. php’ với đường dẫn tệp chính xác
Nếu mọi thứ đã được thiết lập chính xác, bạn sẽ nhận được email có thông báo của mình
Phần kết luận
Đó là tất cả những gì liên quan đến việc thiết lập và gửi email bằng hàm PHP mail[]. Chúng tôi đã chứng minh việc gửi email ngay từ tập lệnh PHP bằng một ví dụ đơn giản. Tuy nhiên, bạn có thể mở rộng tập lệnh hơn nữa tùy theo nhu cầu của mình. Chẳng hạn, bạn có thể thêm nó vào cuối tập lệnh biểu mẫu liên hệ của mình để nhận email bất cứ khi nào khách truy cập gửi tin nhắn từ trang liên hệ