Когда я использую терминал для отправки электронной почты, все работает правильно.Я использую следующую команду:
echo "Subject: test" | /usr/lib/sendmail -v you@domain.com
Но когда я пытаюсь это сделать в PHP:
PHP ДОКУМЕНТАЦИЯ:
<?php bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] ) ?>
МОЕ РЕАЛИЗАЦИЯ:
<?php mail("you@domain.com", "my topic", "my message contents", "From: me@domain.com"); ?>
, тогда это не работает.Это почему?Я предполагаю, что это связано с PHP-файлом php.ini?
Все, что я настроил:
открытый php.ini:
nano /etc/php5/apache2/php.ini
раскомментировать sendmail_path и написать:
sendmail_path = /usr/sbin/sendmail
раскомментировать sendmail_from и написать:
sendmail_from = me@domain.com
перезапустите apache:
/etc/init.d/apache2 restart
В чем может быть дело?Чтобы сделать это более ясным: я хочу, чтобы PHP мог отправлять электронную почту!
РЕДАКТИРОВАТЬ:
- Функция PHP mail () возвращает FALSE.
- для php.ini: изменение
/usr/sbin/sendmail
на /usr/lib/sendmail
(или наоборот), кажется, не имеет никакого значения - для команды терминала: изменение
/usr/sbin/sendmail
на /usr/lib/sendmail
(или наоборот), похоже, ничего не меняет - Я отправлял сообщения как на свой собственный домен, так и на gmail, оба без сообщений в папке спама.
Лог-файлы Sendmail:
root@machine:/var/log# cat mail.warn
root@machine:/var/log# cat mail.err
root@machine:/var/log# cat mail.log
Mar 20 10:17:09 machine sendmail[12249]: p2K9H2R9012249: from=root, size=0, class=0, nrcpts=1, relay=root@localhost
Mar 20 10:17:20 machine sendmail[12253]: p2K9HImw012253: from=root, size=0, class=0, nrcpts=0, relay=root@localhost
Mar 20 10:17:25 machine sendmail[12255]: p2K9HOAC012255: from=root, size=0, class=0, nrcpts=1, relay=root@localhost
Mar 20 10:20:00 machine sendmail[12277]: p2K9K09k012277: from=root, size=14, class=0, nrcpts=3, msgid=<201103200920.p2K9K09k012277@machine.domain.com>, relay=root@localhost
Mar 20 10:20:00 machine sm-mta[12279]: p2K9K0Ge012279: <-r@machine.domain.com>... User unknown
Mar 20 10:20:00 machine sendmail[12277]: p2K9K09k012277: to=-r, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=90014, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Mar 20 10:20:00 machine sm-mta[12279]: p2K9K0Ge012279: from=<root@machine.domain.com>, size=290, class=0, nrcpts=2, msgid=<201103200920.p2K9K09k012277@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 10:20:00 machine sm-mta[12279]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 10:20:02 machine sm-mta[12279]: p2K9K0Ge012279: to=<you@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:02, xdelay=00:00:02, mailer=esmtp, pri=60290, relay=gmail-smtp-in.l.google.com. [74.125.77.27], dsn=2.0.0, stat=Sent (OK 1300612802 w59si3196382eeh.92)
Mar 20 10:20:02 machine sm-mta[12279]: STARTTLS=client, relay=aspmx.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 10:20:04 machine sm-mta[12279]: p2K9K0Ge012279: to=<you2@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:04, xdelay=00:00:02, mailer=esmtp, pri=60290, relay=aspmx.l.google.com. [74.125.79.27], dsn=2.0.0, stat=Sent (OK 1300612804 p50si3196335eei.44)
Mar 20 10:20:04 machine sendmail[12277]: p2K9K09k012277: to=you2@domain.com,you@domain.com, ctladdr=root (0/0), delay=00:00:04, xdelay=00:00:04, mailer=relay, pri=90014, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2K9K0Ge012279 Message accepted for delivery)
Mar 20 10:20:04 machine sendmail[12277]: p2K9K09k012277: p2K9K09l012277: DSN: User unknown
Mar 20 10:20:04 machine sm-mta[12279]: p2K9K0Gg012279: from=<>, size=1921, class=0, nrcpts=1, msgid=<201103200920.p2K9K09l012277@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 10:20:05 machine sm-mta[12279]: p2K9K0Gg012279: to=<root@machine.domain.com>, delay=00:00:01, xdelay=00:00:01, mailer=local, pri=31921, dsn=2.0.0, stat=Sent
Mar 20 10:20:05 machine sendmail[12277]: p2K9K09l012277: to=root, delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=31038, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2K9K0Gg012279 Message accepted for delivery)
Mar 20 10:25:11 machine sendmail[12321]: p2K9PBC3012321: from=root, size=14, class=0, nrcpts=1, msgid=<201103200925.p2K9PBC3012321@machine.domain.com>, relay=root@localhost
Mar 20 10:25:11 machine sm-mta[12323]: p2K9PBLe012323: from=<root@machine.domain.com>, size=318, class=0, nrcpts=1, msgid=<201103200925.p2K9PBC3012321@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 10:25:11 machine sm-mta[12323]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 10:25:12 machine sm-mta[12323]: p2K9PBLe012323: to=<you@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=30318, relay=gmail-smtp-in.l.google.com. [74.125.77.27], dsn=2.0.0, stat=Sent (OK 1300613112 u12si3204796eeh.99)
Mar 20 10:25:12 machine sendmail[12321]: p2K9PBC3012321: to=you@domain.com, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30014, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2K9PBLe012323 Message accepted for delivery)
Mar 20 11:00:17 machine sendmail[12567]: p2KA0HX9012567: from=root, size=20, class=0, nrcpts=1, msgid=<201103201000.p2KA0HX9012567@machine.domain.com>, relay=root@localhost
Mar 20 11:00:17 machine sm-mta[12568]: p2KA0HNn012568: from=<root@machine.domain.com>, size=324, class=0, nrcpts=1, msgid=<201103201000.p2KA0HX9012567@machine.domain.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 20 11:00:17 machine sm-mta[12568]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Mar 20 11:00:18 machine sm-mta[12568]: p2KA0HNn012568: to=<you@domain.com>, ctladdr=<root@machine.domain.com> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=30324, relay=gmail-smtp-in.l.google.com. [74.125.77.27], dsn=2.0.0, stat=Sent (OK 1300615218 w59si3268114eeh.65)
Mar 20 11:00:18 machine sendmail[12567]: p2KA0HX9012567: to=you@domain.com, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30020, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p2KA0HNn012568 Message accepted for delivery)
Mar 20 11:16:23 machine sendmail[12675]: p2KAGNg8012675: from=www-data, size=188, class=0, nrcpts=0, msgid=<201103201016.p2KAGNg8012675@machine.domain.com>, relay=www-data@localhost
root@machine:/var/log#
EDIT2:
Я нашел решение!
Это был конфиг в php.ini,как я и предполагал.
В php.ini:
sendmail_path = /usr/sbin/sendmail **-t -i**
Теперь, давайте также попробуем понять, почему, я нашел -t на этом сайте а затем я нашел -i в самом файле php.ini.Что означают -t и -i ??
-t
Извлечение получателей из заголовков сообщений.Они добавляются всем получателям, указанным в командной строке.В версиях Postfix до 2.1 эта опция требует, чтобы в командной строке не указывались адреса получателей.
-i
При чтении сообщения из стандартного ввода не обрабатывайте строку только с a.символ в конце ввода.
source
Надеюсь, я смогу помочь тем из вас, кто столкнулся с подобными проблемами.