2011-07-06 13 views
6

Tôi đã cài đặt sendmail với PHP và apache trên Ubuntu. Khi tôi thử dòng lệnh sau đâyPHP sendmail hoạt động trong dòng lệnh Ubuntu, nhưng không phải từ tệp php

php -r "mail('[email protected]', 'test', 'test')"' 

gửi thành công email này.

Tuy nhiên, chạy file "test_send_mail.php" với:

<?php 
mail('[email protected]', 'test', 'test') 
?> 

không gửi email.

Nỗ lực không thành công với các file .php tạo ra các mục đăng nhập:

`Jul 5 21:24:47 www sendmail[25603]: p661OlL7025603: from=www-data, size=106, class=0, 

nrcpts = 0, msgid = < [email protected]>, rơle = www-data @ localhost

nỗ lực thành công với dòng lệnh tạo ra các mục đăng nhập:

Jul 5 21:22:40 www sm-mta[25533]: p661MevV025533: from=<[email protected]>, 
size=352, class=0, nrcpts=1, msgid=<[email protected]>, 
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1] 

có ai có bất kỳ ý tưởng những gì có thể xảy ra? Cảm ơn sự giúp đỡ của bạn!

+1

Chức năng PHP 'mail()' thực sự khá hạn chế và kỳ quặc. Nếu bạn dự định gửi email đến hoặc cho người dùng trang web của mình, bạn nên sử dụng một thư viện thích hợp, chẳng hạn như PHPMailer. Điều này mang lại cho bạn những thứ như xử lý tệp đính kèm và hỗ trợ tiêu đề tốt hơn nhiều. – staticsan

+0

Thôi nào, thư có thể gửi bất kỳ thứ gì, bao gồm tệp đính kèm và v.v. Có thêm thông tin về phương tiện để gửi email. Trong trường hợp của PHPMailer chủ yếu là nó sử dụng SMTP trong khi chức năng mail sử dụng linux sendmail programm. Và có vẻ như nó được cấu hình cho người dùng root, nhưng không được cấu hình cho dữ liệu www –

Trả lời

1

PHP Có riêng ini file tùy thuộc vào môi trường:

  • cli/php.ini
  • cgi/php.ini
  • php.ini

Hãy chắc chắn rằng bạn đã thực hiện tất cả các thay đổi thích hợp trong tất cả các tập tin, cgi thường được sử dụng cho Nginx và Lighttpd, nhưng sao chép các thiết lập trong cả 3 để chắc chắn.

Ngoài ra, bạn có thể chạy chức năng phpinfo(); để xem cài đặt nào đang được sử dụng thực sự.

cũng điều này có thể sửa chữa trực tiếp: PHP mail issue with www-data

0

nỗ lực không thành công của bạn đang gửi email như sử dụng máy chủ web. Có thể bạn không muốn làm điều đó. Điều quan trọng là chuyển nhiều tham số hơn đến mail() để ghi đè các loại giá trị mặc định này khi nó đưa email đến bộ phun của bạn.

Tìm các nhận xét trên trang người đàn ông cho mail() và sẽ có rất nhiều trợ giúp để thực hiện điều đó.