Я хочу отправлять электронные письма со своего сервера через внешний почтовый сервер. Итак, я установил nullmailer
как один из самых простых MTA в Debian 7 x32.
Мой /etc/nullmailer/remotes
:
smtp.example.com smtp --user=sender@example.com --pass=*** --port 465 --ssl
пользователь в этом случае это зарегистрированный пользователь на удаленном сервере.
Теперь я хочу отправить тестовое письмо. Замена Nullmailer на sendmail имеет несколько параметров:
использование: sendmail [флаги] [получатели]
-f Установить адрес отправителя конверта
Хорошо, поэтому я отправляю письмо с:
ls | sendmail -f sender@example.com recipient@example.com
Но это письмо пришло на почтовый ящик sender@example.com. Один из заголовков говорит:
Кому: unisclosed-recipients :;
Насколько я понимаю, nullmailer не отправляет адрес получателя.
Хорошо, теперь я пытаюсь отправить его через php
:
mail("recipient@example.com","subject","message","From: sender@example.com");
Но на самом деле ничего не прислали. В журнале написано:
smtp: Ошибка: 553 5.7.1 Адрес отправителя отклонен: не принадлежит пользователю auth. Ошибка отправки: постоянная ошибка при отправке сообщения
Хм ... странно выглядит. Если я перечисляю очередь nullmailer, я вижу
sendmail -bp
2015-03-23 14:58:26 332 bytes from <root@example.com>
to <sender@example.com>
Я не знаю откуда это root@example.com
пришел. Так что очередь сейчас заморожена. Я нашел очередь в /var/spool/nullmailer/queue/
. Каждое электронное письмо сохраняется в виде файла с заголовком и телом сообщения. Файл выглядит так:
root@example.com
sender@example.com
Received: (nullmailer pid 14630 invoked by uid 0);
Mon, 23 Mar 2015 04:58:26 -0000
To: recipient@example.com
Subject: subject
X-PHP-Originating-Script: 0:test.php
From: sender@example.com Date: Mon, 23 Mar 2015 14:58:26 +1000 Message-Id: 1427086706.909885.14629.nullmailer@example.com>
message
Поэтому я изменил заголовок с
root@example.com
sender@example.com
к
sender@example.com
recipient@example.com
И вуаля! - письмо было отправлено, как ожидалось - от sender@example.com
к recipient@example.com
Итак, мой вопрос - что я сделал не так и как мне отправить электронное письмо с nullmailer
обычным способом?