Lỗi:
Không thể gửi e-mail.
đến từ drupal_mail () và nó được coi là rất chung chung và nó có thể liên quan đến nhiều thứ khác nhau như cấu hình sai của trang web Drupal, cấu hình PHP hoặc dịch vụ SMTP của hệ điều hành của bạn.
Điều đầu tiên cần làm là kiểm tra hệ thống thư hoặc nhật ký Apache (ví dụ /var/log/apache2/error.log
) để biết thêm chi tiết về lỗi, vì bạn có thể tự thiếusendmail
nó (trừ khi bạn muốn sử dụng bất kỳ dịch vụ SMTP bên ngoài nào).
Nếu Drupal của bạn được lưu trữ trên máy chủ chuyên dụng của bạn và đó là một cấu hình hoàn toàn mới, rất có thể bạn đang thiếu máy chủ SMTP (vì nó được trỏ đến localhost
theo mặc định), trừ khi bạn dự định sử dụng cấu hình bên ngoài.
Nếu đó là máy phát triển cục bộ của bạn, hãy bỏ qua lỗi (vì nó sẽ hoạt động tốt trên máy chủ chuyên dụng), hãy thử cài đặt MailCatcher hoặc bạn sẽ phải cài đặt máy chủ SMTP như đã nêu ở trên.
Dưới đây là một vài gợi ý khác:
- nếu sử dụng mô-đun SMTP , hãy kiểm tra xem bạn đã cấu hình chưa (xem tệp README ), bao gồm các cài đặt máy chủ phù hợp ,
- kiểm tra giá trị của
mail_system
biến, nếu nó bị ghi đè - đặt lại nó thành giá trị mặc định ( drush vdel mail_system
),
- kiểm tra cấu hình thư PHP của bạn (
php -i | grep -ie mail -e smtp
) và xác nhận rằng sendmail_path
, SMTP
lưu trữ và smtp_port
là chính xác,
kiểm tra kết nối với máy chủ SMTP của bạn bằng cách sử dụng telnet
, ví dụ:
telnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')
để kiểm tra xem máy chủ không bị hỏng, được DNS giải quyết hay không bị chặn bởi tường lửa,
nếu sử dụng postfix
, hãy kiểm tra xem có httpd_can_sendmail
được đặt thành1
( setsebool httpd_can_sendmail 1
) không.
Cuối cùng kiểm tra e-mail của bạn bằng lệnh PHP sau:
php -r 'mail("drupal@mailinator.com", "Mail test", "It works!");'
và kiểm tra trang này nếu nhận được e-mail.