URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 77794
[ Назад ]

Исходное сообщение
"Как с помощью sendmail отправить письмо во 'внешний мир'?"

Отправлено borz , 09-Дек-07 21:51 
Делаю файл mail.txt


To: <xxx@mail.ru>
From: <xxx@xxx.xx>
Subject: 111
Mime-Version: 1.0
Content-Type: text/plain; charset="koi8-r"
Content-Transfer-Encoding: 8bit

0000
000000
00000000
.

Запускаю команду
cat mail.txt | sendmail -vt

В ответ получаем:


<xxx@mail.ru>... Connecting to [127.0.0.1] via relay...
220 localhost.my.domain ESMTP Sendmail 8.13.8/8.13.8; Sun, 9 Dec 2007 21:46:13 GMT
>>> EHLO localhost.my.domain

250-localhost.my.domain Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<root@localhost.my.domain> SIZE=165

250 2.1.0 <root@localhost.my.domain>... Sender ok
>>> RCPT To:<xxx@mail.ru>
>>> DATA

250 2.1.5 <xxx@mail.ru>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .

250 2.0.0 lB9LkD6a011639 Message accepted for delivery
<xxx@mail.ru>... Sent (lB9LkD6a011639 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT

221 2.0.0 localhost.my.domain closing connection

Т.е. sendmail даже и не пытается соединиться с "удаленным" mail.ru.

/etc/resolv.conf прописан правильно. ping mail.ru работает.

Как заставить sendmail отсылать письма во "внешний мир"?


Содержание

Сообщения в этом обсуждении
"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено konst , 10-Дек-07 02:34 
>250 2.0.0 lB9LkD6a011639 Message accepted for delivery
><xxx@mail.ru>... Sent (lB9LkD6a011639 Message accepted for delivery)
>

...
>Т.е. sendmail даже и не пытается соединиться с "удаленным" mail.ru.
>

И с чего Вы это взяли (Вы по-аглицки шпрехаете?)?
Если письмо не доходит -
См. /var/log/maillog


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 10-Дек-07 13:16 
>[оверквотинг удален]
>><xxx@mail.ru>... Sent (lB9LkD6a011639 Message accepted for delivery)
>>
>
>...
>>Т.е. sendmail даже и не пытается соединиться с "удаленным" mail.ru.
>>
>
>И с чего Вы это взяли (Вы по-аглицки шпрехаете?)?
>Если письмо не доходит -
>См. /var/log/maillog

Хмм... Это взлял с того, что надпись 127.0.0.1 говорила про localhost. Разве не должен появляться IP адрес mail.ru?!

Хотя, похоже, ошибся. Вот сообщения /var/log/maillog


Dec 10 13:03:35 localhost sendmail[1560]: lBAD3YEF001560: from=root, size=170, class=0, nrcpts=1, msgid=<200712101303.lBAD3YEF001560@localhost.my.domain>, relay=root@localhost
Dec 10 13:03:41 localhost sm-mta[1561]: lBAD3ZA1001561: from=<root@localhost.my.domain>, size=419, class=0, nrcpts=1, msgid=<200712101303.lBAD3YEF001560@localhost.my.domain>, proto=ESMTP, daemon=IPv4, relay=localhost [127.0.0.1]
Dec 10 13:03:41 localhost sendmail[1560]: lBAD3YEF001560: to=<borzih@mail.ru>, ctladdr=root (0/0), delay=00:00:07, xdelay=00:00:06, mailer=relay, pri=30170, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (lBAD3ZA1001561 Message accepted for delivery)
Dec 10 13:03:49 localhost sm-mta[1563]: lBAD3ZA1001561: to=<borzih@mail.ru>, ctladdr=<root@localhost.my.domain> (0/0), delay=00:00:09, xdelay=00:00:08, mailer=esmtp, pri=30419, relay=mxs.mail.ru. [194.67.23.20], dsn=5.0.0, stat=Service unavailable
Dec 10 13:03:49 localhost sm-mta[1563]: lBAD3ZA1001561: lBAD3nA1001563: DSN: Service unavailable
Dec 10 13:03:50 localhost sm-mta[1563]: lBAD3nA1001563: to=<root@localhost.my.domain>, delay=00:00:01, xdelay=00:00:00, mailer=local, pri=31443, relay=local, dsn=2.0.0, stat=Sent

И что это значит? "relay=mxs.mail.ru. [194.67.23.20], dsn=5.0.0, stat=Service unavailable"?


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено GloryS , 10-Дек-07 17:01 
>[оверквотинг удален]
>
 
>Dec 10 13:03:35 localhost sendmail[1560]: lBAD3YEF001560: from=root, size=170, class=0, nrcpts=1, msgid=<200712101303.lBAD3YEF001560@localhost.my.domain>, relay=root@localhost
>Dec 10 13:03:41 localhost sm-mta[1561]: lBAD3ZA1001561: from=<root@localhost.my.domain>, size=419, class=0, nrcpts=1, msgid=<200712101303.lBAD3YEF001560@localhost.my.domain>, proto=ESMTP, daemon=IPv4, relay=localhost [127.0.0.1]
>Dec 10 13:03:41 localhost sendmail[1560]: lBAD3YEF001560: to=<borzih@mail.ru>, ctladdr=root (0/0), delay=00:00:07, xdelay=00:00:06, mailer=relay, pri=30170, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (lBAD3ZA1001561 Message accepted for delivery)
>Dec 10 13:03:49 localhost sm-mta[1563]: lBAD3ZA1001561: to=<borzih@mail.ru>, ctladdr=<root@localhost.my.domain> (0/0), delay=00:00:09, xdelay=00:00:08, mailer=esmtp, pri=30419, relay=mxs.mail.ru. [194.67.23.20], dsn=5.0.0, stat=Service unavailable
>Dec 10 13:03:49 localhost sm-mta[1563]: lBAD3ZA1001561: lBAD3nA1001563: DSN: Service unavailable
>Dec 10 13:03:50 localhost sm-mta[1563]: lBAD3nA1001563: to=<root@localhost.my.domain>, delay=00:00:01, xdelay=00:00:00, mailer=local, pri=31443, relay=local, dsn=2.0.0, stat=Sent
>

>
>И что это значит? "relay=mxs.mail.ru. [194.67.23.20], dsn=5.0.0, stat=Service unavailable"?

Ну для начала я бы почтовик настроил...
Чтобы не было никаких localhost'ов, т.е.
from=<root@localhost.my.domain>
<200712101303.lBAD3YEF001560@localhost.my.domain>
должны быть нормальные домены.
Многие почтовики за опен-релей принимают...
Далее
файл сообщения должен в конце содеожать
.\n (т.е. перевод строки, можно даже лишнюю строку вставить, хуже не будет), т.е.
----------------
To: <xxx@mail.ru>
From: <xxx@xxx.ru>
Subject: 111
Mime-Version: 1.0
Content-Type: text/plain; charset="koi8-r"
Content-Transfer-Encoding: 8bit

0000
000000
00000000

.

-------------


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 10-Дек-07 16:30 
Интересно то, что если то же самое сообщение послать на почту yandex.ru, то в логе /var/logs/maillog получаем несколько иную ошибку


Dec 10 16:21:55 localhost sendmail[718]: lBAGLtZ5000718: from=root, size=173, class=0, nrcpts=1, msgid=<200712101621.lBAGLtZ5000718@localhost.my.domain>, relay=root@localhost
Dec 10 16:21:55 localhost sm-mta[719]: lBAGLthO000719: from=<root@localhost.my.domain>, size=422, class=0, nrcpts=1, msgid=<200712101621.lBAGLtZ5000718@localhost.my.domain>, proto=ESMTP, daemon=IPv4, relay=localhost [127.0.0.1]
Dec 10 16:21:55 localhost sendmail[718]: lBAGLtZ5000718: to=<teledar@yandex.ru>, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30173, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (lBAGLthO000719 Message accepted for delivery)
Dec 10 16:22:15 localhost sm-mta[721]: lBAGLthO000719: to=<teledar@yandex.ru>, ctladdr=<root@localhost.my.domain> (0/0), delay=00:00:20, xdelay=00:00:20, mailer=esmtp, pri=30422, relay=mx1.yandex.ru. [213.180.200.57], dsn=5.6.0, stat=Data format error
Dec 10 16:22:15 localhost sm-mta[721]: lBAGLthO000719: lBAGMFhO000721: DSN: Data format error
Dec 10 16:22:16 localhost sm-mta[721]: lBAGMFhO000721: to=<root@localhost.my.domain>, delay=00:00:01, xdelay=00:00:01, mailer=local, pri=31446, relay=local, dsn=2.0.0, stat=Sent

т.е. ошибку "relay=mx1.yandex.ru. [213.180.200.57], dsn=5.6.0, stat=Data format error". Что же это значит?


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено SubGun , 10-Дек-07 16:33 
А зачем вы делаете mail.txt?

"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 10-Дек-07 16:45 
>А зачем вы делаете mail.txt?

Это файлик, в котором хранится отправляемое сообщение. Чтобы каждый раз не набирать с клавиатуры...


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено SubGun , 10-Дек-07 16:55 
>>А зачем вы делаете mail.txt?
>
>Это файлик, в котором хранится отправляемое сообщение. Чтобы каждый раз не набирать
>с клавиатуры...

Зачем ему генерировать заголовок, если можно просто

mail -s 'Тема' адрес < файл


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 10-Дек-07 17:08 
>>>А зачем вы делаете mail.txt?
>>
>>Это файлик, в котором хранится отправляемое сообщение. Чтобы каждый раз не набирать
>>с клавиатуры...
>
>Зачем ему генерировать заголовок, если можно просто
>
mail -s 'Тема' адрес < файл

Можно попробовать... А как задать адрес отправителя? Я не думаю, что mail.ru или yandex.ru станут принимать письмо от root@localhost.my.domain (именно такой email фигурирует в лог файлах!)



"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено GloryS , 10-Дек-07 17:21 
>[оверквотинг удален]
>>>
>>>Это файлик, в котором хранится отправляемое сообщение. Чтобы каждый раз не набирать
>>>с клавиатуры...
>>
>>Зачем ему генерировать заголовок, если можно просто
>>
mail -s 'Тема' адрес < файл

>
>Можно попробовать... А как задать адрес отправителя? Я не думаю, что mail.ru
>или yandex.ru станут принимать письмо от root@localhost.my.domain (именно такой email фигурирует
>в лог файлах!)

Я ж так и сказал...
из конфига сендмыла

# my official domain name
# ... define this only if sendmail cannot automatically determine your domain
#Dj$w.Foo.COM

Что-нить говорит?


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено SubGun , 10-Дек-07 18:24 
Блин, ну так выполните команду под пользователем, а не рутом.

"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 10-Дек-07 18:55 
>Блин, ну так выполните команду под пользователем, а не рутом.

Хочу пояснить некоторые вещи.
1) На этой машине нет никакого другого пользователя, кроме root (есть вирутальные пользователи nobody, daemon и т.п.)
2) Этой машине не соответсветствует никакой реальный URL адрес (домен). Есть лишь некоторый IP адрес.
3) В настройках sendmail (файлы /etc/mail/mailer.conf, /etc/mail/freebsd.mc, /etc/mail/freebsd.cf ...) я ничего не трогал и ничего не понимаю.

Есть ли возможность отсылать с этой машины электронную почту на @mail.ru, @yandex.ru и т.п.? Какой минимальный набор изменений надо сделать, чтобы это работало?

Строка sendmail_enable="YES" в файле /etc/rc.conf имеется. Больше я ничего не трогал.


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено GloryS , 11-Дек-07 14:00 
>>Блин, ну так выполните команду под пользователем, а не рутом.
>
>Хочу пояснить некоторые вещи.
>1) На этой машине нет никакого другого пользователя, кроме root (есть вирутальные
>пользователи nobody, daemon и т.п.)
>2) Этой машине не соответсветствует никакой реальный URL адрес (домен). Есть лишь
>некоторый IP адрес.

Спам рассылка??????
Никакой нормальный почтовик не будет принимать такую почту!
Мой почтовик - точно не принимает!
Будет домен - будем принимать!

>3) В настройках sendmail (файлы /etc/mail/mailer.conf, /etc/mail/freebsd.mc, /etc/mail/freebsd.cf ...) я ничего не
>трогал и ничего не понимаю.
>
>Есть ли возможность отсылать с этой машины электронную почту на @mail.ru, @yandex.ru
>и т.п.? Какой минимальный набор изменений надо сделать, чтобы это работало?
>
>
>Строка sendmail_enable="YES" в файле /etc/rc.conf имеется. Больше я ничего не трогал.


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 11-Дек-07 14:44 
>[оверквотинг удален]
>Будет домен - будем принимать!
>
>>3) В настройках sendmail (файлы /etc/mail/mailer.conf, /etc/mail/freebsd.mc, /etc/mail/freebsd.cf ...) я ничего не
>>трогал и ничего не понимаю.
>>
>>Есть ли возможность отсылать с этой машины электронную почту на @mail.ru, @yandex.ru
>>и т.п.? Какой минимальный набор изменений надо сделать, чтобы это работало?
>>
>>
>>Строка sendmail_enable="YES" в файле /etc/rc.conf имеется. Больше я ничего не трогал.

Ну что у всех в голове только один спам! Во-первых, отсылка писем нужна всего лишь на два email адреса, на мои адреса! Раз в сутки на сервере запускается крон, проверяет состояние параментров сервера и если есть превышения - шлет мне на email предупредение.

А домена не потому, что все мои домены живут на другом сервере. А это вспомогательный сервер, только под базу данных MySQL.

Так задача решаемы? Что по минимуму надо изменить в настройках sendmail, чтобы почта отсылалась?


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено Medlar , 11-Дек-07 15:26 
cat 123|mail -sStatistics -r name@your_real_mail_domain.ru  you@mail.ru

cat 123|sendmail -fname@your_real_mail_domain.ru  you@mail.ru


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено borz , 13-Дек-07 16:35 
>cat 123|mail -sStatistics -r name@your_real_mail_domain.ru  you@mail.ru
>
>cat 123|sendmail -fname@your_real_mail_domain.ru  you@mail.ru

Отлично! Ключика -f у sendmail мне действительно не хватало! И не надо было трогать никакие конфигурационные файлы! Ура, работает!


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено Антон , 08-Дек-14 11:47 
>>cat 123|mail -sStatistics -r name@your_real_mail_domain.ru  you@mail.ru
>>
>>cat 123|sendmail -fname@your_real_mail_domain.ru  you@mail.ru
> Отлично! Ключика -f у sendmail мне действительно не хватало! И не надо
> было трогать никакие конфигурационные файлы! Ура, работает!

Пдскажите, пожалуйста, в какие файлы в итоге нужно вносить изменения?


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено Аноним , 11-Дек-07 22:21 
В postfix это делается через generic maps. В sendmail есть что-то типа address rewriting. Читать доки.

PS. Над GloryS поржал знатно. Спам рассылка, гыгы.


"Как с помощью sendmail отправить письмо во 'внешний мир'?"
Отправлено Bota , 14-Май-08 22:30 
Теперь, чтобы после бурных обсуждений в голове небыло каши, всё по порядку:
#создаём файл msg с текстом

To: <to@mail.ru>
From: <from@gmail.com>
Subject: 'TeMa'
Mime-Version: 1.0
Content-Type: text/plain; charset="koi8-r"
Content-Transfer-Encoding: 8bit

Text of message!
.

#далее вводим команду

cat msg |sendmail -ffrom2827@gmail.com -vt to@mail.ru

#и почта пошла...