Linux mail from root

Отправка почты из командной строки (консоли) Linux

В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail/mailx/mutt. Данная инструкция применима ко всем современным дистрибутивам Linux.

Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.

В первую очередь рассмотрим утилиту mail (mailx). Для ее установки, выполните:

  • Для Debian/Ubuntu: # sudo apt-get install mailutils
  • Для CentOS/Redhat установите пакет с помощью yum (dnf) # dnf install mailx

Mailx содержит в себе несколько утилит для работы с почтой, мы же подробно остановимся на mail.

# yum install sendmail –y

Основные опции при отправке писем:

    -s — Subject:

Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:

# echo «Это тестовое письмо» | mail -s «Проверка отправки почты» admin@build-centos.ru

Проверьте, что письмо доставлено в ящик.

Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:

Без указания дополнительных опций письмо отправляется с дефолтного почтового ящика и скорее всего будет помечено как спам в большинстве популярных почтовых сервисах.

Чтобы указать другого отправителя письма (mail from), используйте ключ -r:

# echo «Это тестовое письмо 2» | mail -s «Проверка отправки почты 2» -r admin@build-centos.ru test@build-centos.ru

Если нужно отправить письмо нескольким получателям, перечислите их через запятую:

# echo «Это тестовое письмо 3» | mail -s «Проверка отправки почты 3» -r admin@build-centos.ru test@build-centos.ru, test-2@build-centos.ru

Как видите, письмо было отправлено двум получателям. А с помощью ключа -c вы можете отправить копию письма на указанный ящик:

# echo «Это тестовое письмо 4» | mail -s «Проверка отправки почты 4» -r admin@build-centos.ru -c test@build-centos.ru

Если вам нужно прикрепить к письму файл, укажите путь к файлу в параметре –a.

# echo «Файл во вложении» | mail -s «Проверка вложения» -a /root/test.txt -r admin@build-centos.ru test@build-centos.ru

В указанных почтовый ящик должно прийти письмо с вложением. Если нужно отпрравить два или более файлов, добавьте каждый файл через собственный атрибут –a:

# echo «Вложены 2 файла » | mail -s «Вложение нескольких файлов » -a /root/test.txt -a /root/message.log -r admin@build-centos.ru test@build-centos.ru

Вы можете отправить письмо через конкретный SMTP сервер. Его имя и порт подключения указываются в параметре -S smtp= :

# echo «Messages smtp server» | mail -s «Test smtp server» -S smtp=»build-centos.ru:25″ -r admin@build-centos.ru admin@build-centos.ru

Если удаленный SMTP сервер требует авторизации перед отправкой, вы можете указать имя пользователя и пароль с помощью параметров -S smtp-auth-user и -S smtp-auth-password.

# echo «Test auth mailbox» | mail -v -s «Test auth» -S smtp=»build-centos.ru:25″ -S smtp-auth=login -S smtp-auth-user=»admin@build-centos.ru» -S smtp-auth-password=»password» -S from=admin@build-centos.ru admin@build-centos.ru

При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.

Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:

-S smtp-use-starttls
-S ssl-verify=ignore

/.mailrc. Например, добавьте в этот файл такие строки:

Теперь для отправки письма через релей Gmail с аутентификацией достаточно выполнить команду:

$ echo «Test mail » | mail -v -s «Testing gmail auth» admin@build-centos.ru

Вы можете использовать команду отправки почты для в своих bash скриптом. Например, создайте следующий скрипт, которые будет отправлять вам информацию по свободному месту на дисках:

Добавьте этот скрипт в планировщик cron и вы будете регулярно получать письма с информацией о свободном месте на вашем сервере.

Еще одна популярная утилита для отправки почты в Linux это mutt:

# sudo apt-get install mutt — для Debian/Ubuntu

# yum install mutt -y — для CentOS/Redhat

Синтаксис mutt такой же, как и у mail/ mailx:

# echo «Text messages mutt» | mutt -s «Test mutt» admin@build-centos.ru

Таким образом, вы можете легко отправлять письма из командной строки, встраивать отправку email оповещений в свои bash скрипты или ватчдоги (удобно для контроля их выполнения).

Источник

linux-notes.org

Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux.

Синтаксис команды mail:

Опции.

-v : Подробный режим. Детали отправки отображаются на экране.
-s : Опция задает тему для письма.
-c : Отправить СС (копии для других пользователей).
-b :Отправить BС (копии для других пользователей).
-f : Прочитать содержимое почтового ящика.
-e : Проверка на наличие почты в почтовом ящике.
-F : Записывает сообщение в файл с именем после получения.
-r : Опция для указания адреса отправителя в настройках отправки почты.
-u : Определяет сокращенния, аналог опции «mail -f /var/spool/mail/UserID».

Установка утилиты mail в Unix/Linux

Для того чтобы установить утилиту mail на CentOS/Fedora/RedHat, используйте:

Для того чтобы установить утилиту mail на Debian/Mint, используйте:

Теперь вы должны иметь команду mail, и можно приступать к работе.

Команды mail/mailx в примера на Unix/Linux

В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как пользоваться утилитой mail в ОС Unix/Linux. Приведу наглядные примеры использования данной утилиты.

Чтобы запустить программу «mail» и вывести список сообщений в почтовом ящике, выполните:

Команда mail показывает количество сообщений в ящике системы. Затем почтовая система отображает подсказку почтового ящика (?), ожидая ввода.

Когда вы видите эту строку, то нужно ввести субкоманду, чтобы увидеть список подкоманд, нужно нажать (?):

Данная команда (?) покажет все субкоманды для Mail.

Отправка электронной почты пользователю:

В команде «echo» задается некоторый текст для отправки по электронной почте.

Опция «-s» используется для указания темы для письма. Собственно, команда mail отправит емейл пользователю send_to_some@email.com. Можно обойтись и без команды echo, тогда команда будет выглядеть следующим образом:

В этом примере вы тогда, будите вводить в сообщении и чтобы остановить просто введите точку следующим образом (.):

Если вы хотите отправить письмо нескольким пользователям, то просто добавить емейл через пробел. Это будет выглядеть следующим образом:

Отправка содержимого текстового файла

3 thoughts on “ Команды mail/mailx в примера на Unix/Linux ”

Не подскажете, как настроить на свой почтовый адрес?

Установить и настроить свой почтовый сервер. Какой взять, — это на любителя. Я предпочитаю — postfix + dovecot. Настройку данной связки я опубликовывал тут: http://linux-notes.org/ustanovka-pochtovogo-servera-postfix-dovecot-i-squirrelmail-v-centos-redhat-fedora/

Если у меня все письма в первый экран не влазят, как увидеть следующую страницу списка?

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

How to redirect local root mail to an external email address on Linux

By ballen
Post date

I run a home file, media and backup server at home on Ubuntu Server 12.04 LTS. I have various cron jobs set-up for various task such as backing up external MySQL databases, web site data and other tasks.

Читайте также:  Windows quiz questions and answers

By default, when a cron job runs and if the script or program that runs produces any output (text on the screen) this will email the cron user, in my case, I have setup cron jobs under the root user, therefore emails get sent to root@hostname, so everytime I login via. SSH (which is very rare) I get told about X amount of unread email in /var/mail/root. Now obviously for cron jobs that do create output but you don’t care you can append the cron job line to redirect the output (by appending ‘> /dev/null‘) like so:-

However sometimes you want to know if particular tasks have run successfully and to only have to check a single (external) mail account is much more reasonable, so I’m going to show you how to create a mail alias so emails get sent directly to your external email account.

First of all you need to make sure that you have a mail server installed on your server, I have a default install of Postfix installed, I’ve not done any special configuration to it at all, it will simple be used to end emails externally. – My home server is not set-up to receive any external emails etc.

Lets add your email address as an alias…

So with you favioure text editor, lets edit the /etc/aliases file and add your username and external email address like so:-

Now run this command:-

Now restart Postfix:-

and to test, run the following command:-

You should now be able to check your external email account, in this example I’ve used a gmail account! – Login to your external email account and you should then see your email (if its not in your inbox, check your SPAM folder!)

Hope this will help some people looking to do the same 🙂

Источник

Отправка почты через консоль с авторизацией в linux

Для того, чтобы быть в курсе всего, что происходит на сервере, помимо мониторинга, полезно следить за стандартными письмами, которые шлют различные сервисы. Я расскажу, как настроить на сервере отправку писем через стандартный postfix с авторизацией на стороннем smtp сервере. Так же эта настройка будет полезна для отправки почты через консоль linux с авторизацией по smtp.

По-умолчанию, в минимальной установке дистрибутива CentOS 7 уже идет в комплекте почтовый сервер postfix. Его я и буду использовать. Стандартные настройки сервера не дают нормальных возможностей для отправки почты. Сделаем некоторые дополнительные действия.

Для начала, чтобы иметь возможность оперативно проверять отправку почты через консоль, установим программу mailx. Без нее при попытке отправить письмо в консоли, будете получать ошибку:

Для того, чтобы это исправить, устанавливаем mailx.

После этого можно отправлять со своего сервера сообщения во внешний мир, например вот так.

На почту улетит вывод команды df.

Но при стандартных настройках ваше письмо либо попадет в спам, либо вообще не будет принято сервером получателя, потому что на вашем сервере нет корректных настроек для отправки почты (dns записи, spf, dkim и т.д.). Чтобы почта нормально отправлялась, надо воспользоваться каким-то внешним почтовым сервером. Настроим postfix на отправку локальных писем через внешний сервер с авторизацией по smtp.

Я взял дефолтный конфиг postfix, очистил его от комментариев и пробелов, добавил в конец свои настройки.

Создаем файл с информацией об имени пользователя и пароле для авторизации.

Создаем db файл.

Теперь можно перезапустить postfix и проверить работу.

Отправляем тестовое письмо через консоль. Проверяем почтовый лог.

Если у вас там будет похожая ошибка:

То необходимо установить еще несколько пакетов:

После этого перезапускайте postfix и проверяйте отправку в консоли. Если все в порядке, то к стандартному алиасу для root в /etc/aliases, добавьте внешний адрес, куда будет дублироваться почта, адресованная root. Для этого редактируем указанный файл, изменяя последнюю строку.

Обновляем базу сертификатов:

На этом все. Теперь все письма, адресованные локальному root, например, отчеты от cron, будут дублироваться на внешний почтовый ящик, причем с отправкой через внешний нормальный почтовый сервер. Так что письма будут нормально доставляться, не попадая в спам (хотя не обязательно, есть еще эвристические фильтры). Теперь удобно использовать локальную отправку в скриптах, не задавая дополнительные параметры. Все уже настроено, можно использовать простую локальную доставку.

Онлайн курс по Linux

Помогла статья? Подписывайся на telegram канал автора

Автор Zerox

62 комментария

Доброго времени суток!

Я правильно понял:
myhostname = сюда вставляем результат выполнения команды hostname
mydomain = и сюда тоже
Это я так — для уточнения, а на самом деле я не понял вот этот момент:
relayhost = mailsrv.mymail.ru:25

Вместо «mailsrv.mymail.ru» нужно вставить что-то свое? Если да — где брать данный параметр? Или я не правильно понял? И что за «25»?

Добрый день.
Не могли бы вы обновить статью под CentOS 8?
Например, логов по пути, указанному в статье я найти уже не могу.

Ничего непонятно, но очень интересно

Рад, что понравилось 🙂

Добрый день!
Пытался установить и настроить POSTFX для отправки голосовых сообщений по почте из Asterisk в Debian на Raspberry PI 3.
Ничего не получается.
Может подскажите чайнику пошагово как прикрутить почту POSTFX на Debian для Asterisk.

Подскажите, у вас на скриншоте пришли очень стройные логи. У меня в письме логи разъезжаются из-за дины имени:
udev 7,8G 0 7,8G 0% /dev
tmpfs 1,6G 157M 1,5G 10% /run
/dev/sda2 901G 149G 707G 18% /
tmpfs 7,8G 0 7,8G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 7,8G 0 7,8G 0% /sys/fs/cgroup

Можно ли как-то отформатировать?

Даже не знаю. Я специально ничего не делал для форматирования. Возможно это интерфейс gmail табуляцию проставил так, как и должна быть.

Добрый день!
Спасибо за Ваш труд!! Хотел поинтересоваться, как и где вы находите подобные дополнения: «yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain»? Просто в unix часто что-то не работает, только из-за не правильной или не полной установки пакетов и я не понимаю где нужно искать такую информацию.
Еще раз спасибо Вам за огромную работу, только ради вашего сайта отключил adblock 😀

Во-первых, я в основном читаю англоязычные статьи и поиск делаю по ним. Так все находится гораздо быстрее, потому что материала в разы больше, чем на русском. А во вторых, с опытом все как-то проще становится. Уже понимаешь, как все работает, что как и где искать. Когда я только начинал админить и мог настроить по готовым пошаговым руководствам, тоже не понимал, как люди во всем этом разбираются и пишут статьи. А теперь вот сам пишу 🙂 Просто опыт.

Здравствуйте. Для защиты реального IP сервера от ddos решил использовать DNS через облако от cloudflare.com, при этом столкнулся с проблемой — для нормальной работы почты для MX записей все равно приходится работать НЕ ЧЕРЕЗ облако, т.е. опять «светить» свой IP. Пробовал еще в этом направлении настроить отправку почты через внешний SMTP (mailgun) – почта заработала, все хорошо, — НО в заголовках отправляемых с сервера писем – все равно «светиться» мой реальный IP сервера. Единственным решением пока, наверное, остается отправка почты через API (чтобы внешний SMTP сервер был сервером – источником писем, без указаний на мой исходящий сервер). Но не знаю, как это реализовать – нет знаний. Нет ли (не предвидится ли) у Вас статьи на тему настройки почты на centos+posfix через внешний SMTP сервер ЧЕРЕЗ API этого SMTP сервера.

Читайте также:  Как понять windows домашняя

Почтовый сервер должен быть отдельно от web сайта, если его атакуют. Заголовками писем, генерируемыми на сайте, вы можете управлять. Удаляйте заголовки из писем. Даже если не можете это сделать с помощью изменения скрипта сайта, удалить лишний заголовок можно на почтовом сервере. Если он на postfix, то там это не сильно сложно.

Все эти задачи не простые и решить их без опыта не получится. Надо либо разбираться, либо покупать защиту от ddos под ключ. Там специалисты точно подскажут, что делать. Но это стоит дорого.

К сожалению, пока не получилось удалить заголовки с IP в почте — пробовал через параметр header_checks и smtp_header_checks в файле main.cf, а также только для исходящей почте в файле master.cf.
А по поводу отдельного почтового домена (поддомена) на другом IP — можно ли этот IP и соответственно почтовый домен (поддомен) сделать на том же сервере, или только отдельно (на другом сервере)?

Если почтовый сервер будет на том же сервере, где и web, то вы никак не скроете ip адрес. Это будет технически невозможно, так как в заголовках письма остаются все ip адреса, через которые прошло письмо. Ваш ip адрес будет прописывать в письме сервер, который от вас это письмо получит. Вы этим управлять не сможете.

А если почтовик будет на том же сервере, но на другом IP — все равно не скроются?

Если на другом ip, то может и можно скрыть. Но я не вижу смысла так заморачиваться. Для почтового сервера хватит виртуалки за 5 долларов. Какой смысл его размещать там же, где и сайт.

Т.е. все-таки (если попытаться сэкономить 4 доллара, купив вместо виртуалки, только дополнительный IP за 1 доллар ;-)), если на дополнительный IP повесить (A запись домена example.com), а на первом основном IP сервера оставить сам сервер, а именно почтовый поддомен mail.example.com с той же обратной зоной — mail.example.com – тут нет принципиальных ошибок?

Покупать только IP не имеет смысла.
Если Вы купите IP, а сам почтовый сервер будет расположен на том же сервере то будут DDOS’ить почтовый сервер и увидят что лег основной.
Купить сервер для почты можно и дешевле 4$, есть по 100р.
Самый простой вариант, разместите на нем скрипт на который будете отправлять методом POST адрес почты, тему и содержимое и используйте.

Zerox, спасибо за детальные инструкции. (сам начинающий)
1. К сожалению, не получается отправить/получить почту на email, помогите пож-та, что не так:
__________
main.cf

mydomain = centos7main
mydestination = $myhostname
myorigin = $mydomain
# Адрес сервера, через который будем отправлять почту
relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
header_checks = pcre:/etc/postfix/rewrite_subject
_______________________
aliases:

____________
2. «Добавим в файл /etc/postfix/main.cf одну строчку:
header_checks = pcre:/etc/postfix/rewrite_subject»

вопрос: в какой части кода необх. вставка этой строки? можно в конце? или?

У вас ошибка:
Authentication Required
Не проходит авторизация на сервере gmail.

Там же в логе предупреждение:
warning: database /etc/postfix/sasl_passwd.db is older than source file /etc/postfix/sasl_passwd
Подозреваю, что вы не обновили базу с паролями после изменения файла sasl_passwd. После каждого изменения нужно выполнять команду:
postmap /etc/postfix/sasl_passwd

У меня вопрос, настроил все по вашей статье.

Для отправки использую smtp.yandex.ru

Естественно столкнулся с проблемой — «Яндекс не допускает отправку, когда адрес отправителя не совпадает с адресом пользователя для авторизации»

Решил ее как здесь предложили:

«нужно в фале /etc/posstfix/main.cf добавить строку

в самом файле /etc/postfix/generic добавить строку

root@server.mydomain.ru реальное_имя_отправителя@mydomain.ruнужно в фале /etc/posstfix/main.cf добавить строку

в самом файле /etc/postfix/generic добавить строку

ВОПРОС допустим у меня несколько серверов и все они отсылают письма на logs@yandex.ru, так вот как я пойму какой из серверов прислал мне письмо. В поле отправитель буде же везде logs@yandex.ru ? может как то тему можно настроить ?

Я не интересовался, как менять тему системных сообщений. Подозреваю, что есть обходной путь через изменение темы у всех писем через postfix. Если хотите все же настроить отправку через один ящик, то копайте в этом направлении. Но лично я бы использовал разные ящики.

Нашел решение, может кому будет полезно:

Добавим в файл /etc/postfix/main.cf одну строчку:
header_checks = pcre:/etc/postfix/rewrite_subject

Теперь нужно создать файл /etc/postfix/rewrite_subject и поместить в него правило, которое будет добавлять в тему письма дополнительный текст с именем сервера
/^Subject: (.*)$/ REPLACE Subject: $1 (from server.domain.tld)

systemctl restart postfix

Спасибо за готовое решение. Как я и предполагал, удобнее всего переименовать тему через postfix. Пожалуй, имеет смысл оформить это как отдельную небольшую заметку. Думаю, будет многим полезно.

У меня почему-то postfix не знает, что такое «pcre», заменил на «regexp».
Заработало!

Oct 29 15:52:54 localhost postfix/qmgr[1968]: CDBB4605FD: from=, size=1096, nrcpt=1 (queue active)
Oct 29 15:52:54 localhost postfix/qmgr[1968]: 11A086930C: from=, size=944, nrcpt=1 (queue active)
Oct 29 15:52:54 localhost postfix/qmgr[1968]: 8426F3D6D4: from=, size=949, nrcpt=1 (queue active)
Oct 29 15:52:54 localhost postfix/error[2031]: CDBB4605FD: to=, orig_to=, relay=none, delay=373, delays=373/0.02/0/0.03, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to smtp.gmail.com[2a00:1450:4010:c0b::6c]:465: Network is unreachable)
Oct 29 15:52:54 localhost postfix/error[2032]: 11A086930C: to=, relay=none, delay=5075, delays=5075/0.02/0/0.05, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to smtp.gmail.com[2a00:1450:4010:c0b::6c]:465: Network is unreachable)
Oct 29 15:52:54 localhost postfix/error[2034]: 8426F3D6D4: to=, relay=none, delay=357, delays=357/0.02/0/0.05, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to smtp.gmail.com[2a00:1450:4010:c0b::6c]:465: Network is unreachable)

ipv6 может стоит погасить или настроить корректно?

Здравствуйте. Не отправляется почта на gmail.
По telnet с сервака порт 465 на smtp.gmail.com открыт.
Но в логе пишет, что сеть не доступна.(

Oct 29 15:52:54 localhost postfix/qmgr[1968]: CDBB4605FD: from=, size=1096, nrcpt=1 (queue active)
Oct 29 15:52:54 localhost postfix/qmgr[1968]: 11A086930C: from=, size=944, nrcpt=1 (queue active)
Oct 29 15:52:54 localhost postfix/qmgr[1968]: 8426F3D6D4: from=, size=949, nrcpt=1 (queue active)
Oct 29 15:52:54 localhost postfix/error[2031]: CDBB4605FD: to=, orig_to=, relay=none, delay=373, delays=373/0.02/0/0.03, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to smtp.gmail.com[2a00:1450:4010:c0b::6c]:465: Network is unreachable)
Oct 29 15:52:54 localhost postfix/error[2032]: 11A086930C: to=, relay=none, delay=5075, delays=5075/0.02/0/0.05, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to smtp.gmail.com[2a00:1450:4010:c0b::6c]:465: Network is unreachable)
Oct 29 15:52:54 localhost postfix/error[2034]: 8426F3D6D4: to=, relay=none, delay=357, delays=357/0.02/0/0.05, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to smtp.gmail.com[2a00:1450:4010:c0b::6c]:465: Network is unreachable)

Отправка идет по сети ipv6. Вероятно она либо не настроена, либо настроена неправильно. Лучше ее отключить полностью, если не используется.

Спасибо за статью и старания)

Хорошая статья, спасибо!
Вопрос как сделать тоже самое без авторизации? В локалке есть полноценный почтовик который работает для доверенных хостов без авторизации по smtp. Настраиваемый сервер доверенный в данном случае.

Присоединяюсь к вопросу Андрея. Так же сделал все настройки, но почта напрямую для root ну уходит, команда
df -h | mail -s «Disk usage» root

Читайте также:  Windows update cmd commands

Спасибо за статью!
Да, с mail.ru не получилось. Получилось с gmail.com
Только у меня там включена двухэтапная авторизация (с подтверждением по смс) и поэтому нужно было создавать специальный отдельный пароль для приложения. Gmail его сам генерирует. Затем его нужно прописать в /etc/postfix/sasl_passwd
https://myaccount.google.com/apppasswords

Спасибо за подсказку. Сэкономила время.

Доброго дня суток. Уважаемый Zerox,а вы не планируете статьи по сортировке почты, в частности только консольными клиентами, но не на примере почтового сервера, а обычной машинки, фактически домашней. В гугле в основном упор делается именно на сервера.

Не очень понял, о чем идет речь.

Попытка №2.
Уважаемый Zerox, есть следующая ситуация абсолютно схожая с комментарием Выше.

Вопрос1: каким образом можно работать из под root, при этом авторизация postfix будет происходить от имени учетки zabbix@mydomain.ru?

Вопрос2: Прописал Алиасы как у Вас указано. На прямую почту письма ходят, по алиасу root, нет. Где копать?

Собственно присоединяюсь к предыдущему коллеге.
Суть:
Работаем под root
Отправляем почту через smtp.yandex.ru:587

Часть конфига main.cf
myhostname = Zabbix
mydomain = myadmin.ru

Часть конфига sasl_passwd
smtp.yandex.ru:587 root@mydomain.ru:pass

Часть конфига aliases
root: root, info@mydomain.ru

Собственно вопросы:
1) Как заставить проходить авторизацию не под root@mydomain.ru (я, конечно, завел пользователя root@mydomain.ru как вынужденную меру, но все же как-то не очень ситуация)
2) Что-то, видимо делаю не так с алиасами. Напрямую почта уходит, при выполнении mail -s «test» root почта не уходит, хотя в /var/log/maillog ошибок нет. Письмо уходит на «root»

Помогите с решением вопроса

получаю ошибку авторизации:
[code]said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))[/code]
с чем может быть связано?

в [code]/etc/postfix/sasl_passwd[/code]
прописал:
[code]smtp.yandex.ru:587 логин:пассворд[/code]
в main.cf — тоже:
[code]relayhost = smtp.yandex.ru:587[/code]

может в этом ошибка?

Лог:
[code]
[root@name-vps-1 rsyslog.d]# tail -n 10 /var/log/maillog
Feb 6 04:16:35 name-vps-1 postfix/pickup[3363]: D6F8C1371: uid=0 from=
Feb 6 04:16:35 name-vps-1 postfix/cleanup[3369]: D6F8C1371: message-id=
Feb 6 04:16:35 name-vps-1 postfix/qmgr[3364]: D6F8C1371: from=, size=767, nrcpt=1 (queue active)
Feb 6 04:16:36 name-vps-1 postfix/smtp[3371]: D6F8C1371: to=, relay=smtp.yandex.ru[77.88.21.38]:587, delay=0.31, delays=0.06/0.05/0.18/0.02, dsn=5.7.1, status=bounced (host smtp.yandex.ru[77.88.21.38] said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))
Feb 6 04:16:36 name-vps-1 postfix/cleanup[3369]: 367BB1924: message-id=
Feb 6 04:16:36 name-vps-1 postfix/bounce[3373]: D6F8C1371: sender non-delivery notification: 367BB1924
Feb 6 04:16:36 name-vps-1 postfix/qmgr[3364]: 367BB1924: from=, size=2707, nrcpt=1 (queue active)
Feb 6 04:16:36 name-vps-1 postfix/qmgr[3364]: D6F8C1371: removed
Feb 6 04:16:36 name-vps-1 postfix/smtp[3371]: 367BB1924: to=, relay=smtp.yandex.ru[213.180.204.38]:587, delay=0.15, delays=0.01/0/0.13/0.01, dsn=5.7.1, status=bounced (host smtp.yandex.ru[213.180.204.38] said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))
Feb 6 04:16:36 name-vps-1 postfix/qmgr[3364]: 367BB1924: removed
[/code]

В логе написано, в чем причина ошибки. Яндекс не допускает отправку, когда адрес отправителя не совпадает с адресом пользователя для авторизации:
Sender address rejected: not owned by auth user.

сейчас в from попадает email вида root@mydomain.ru
где изменить root на нужное мне имя для авторизации?
т.е. на то что прописано в sasl_passwd ?

судя по логу (к сожалению часть лога ваш парсер порезал) в начале запроса from присутствует (первые 5 строк с ошибкой), но дальше from — пуст (последние 5 строк с ошибкой)

во первом SENDe в to нужный емейл
во втором SENDe в to попадает root@mydomain.ru (хотя не совсем понимаю, что он пытается отправить на этот емейл, т.к. он ни где вроде бы не прописан)

создал временно ящик root@mydomain.ru
прописал его данные в /etc/postfix/sasl_passwd

при отправке письма на конкретный ящик, например:
df -h | mail -s «Disk usage» admin@mydomain.ru
письмо приходит на admin@mydomain.ru

при отправке же письма на root, например:
df -h | mail -s «Disk usage» root
письмо приходит на root@mydomain.ru

в /etc/aliases прописано:
root: root,admin@mydomain.ru
впрочем, ни чего не меняется и если прописано:
root: admin@mydomain.ru
или строка закомментирована
естественно, что после каждого изменения выполнялись:
# newaliases
# systemctl restart postfix

что-то я совсем запутался :-/

После настроек мне приходит письмо следующего содержания:

This is the mail system at host centos.localdomain.

I’m sorry to have to inform you that your message could not
be delivered to one or more recipients. It’s attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

(expanded from ): host
mail.мой провайдер.com[ip.моего.провайдера.почты] said: 550-Verification failed for
550-Unrouteable address 550 Sender verify failed
(in reply to RCPT TO command)

Имеются два прикрепленный файла:
message2.delivery-status
message3.eml

Это уже вопрос к вашему почтовому провайдеру, через которого вы отправляете. Я не совсем понимаю, что он имеет ввиду, говоря:

Вы не проходите проверку на отправителя у вашего провайдера почты.

Сейчас переключился на настройку Zabbix на боевом сервере(наконец то железку купили хорошую), и проблему с почтой отложил пока. Но есть мысля что гадит сертификат провайдера. Я просто сейчас не помню пробовал ли я с шифрованием почту настраивать или без и какой порт вписывал. А сертификат у провайдера само-подписанный типа и из-за этого бывают проблемы с настройкой почтовых клиентов на смартфонах с iOC и WindowsPhone. Ну не доверяют они сертификату, а принять его что самое интересное не во всех моделях выходит. Выкручиваюсь настраиваю почту через 25 порт без шифрования. На днях проверю свою мысль и отпишусь.

Спасибо автору за статью, очень полезно. Все отлично работает с Gmail-ом. Почта приходит как было сказано в «Входящие» а не в «Спам».
Вопрос: Почта отправляется в открытом виде или шифруется пакеты при отправке?

Gmail работает только по шифрованному протоколу, так что все зашифровано.

Настроил postfix по вашей статье, письма отправляются и доходят (через smtp.gmail.com). Спасибо!
Проблемы тоже есть.
1) Письма приходят только на gmail. На mail.ru — не приходят даже в спам.
2) Все письма попадают с спам, даже если указать в gmail, что это не спам и добавить почтовый ящик в адресную книгу.

При отправке писем с другого SMTP-сервера нужно чтобы адрес отправителя в письме совпадал с реальным адресом отправителя (в частности, чтобы письма приходили на серверы mail.ru)

нужно в фале /etc/posstfix/main.cf добавить строку

в самом файле /etc/postfix/generic добавить строку

и создать хэш
postmap /etc/postfix/generic

перезапустить postfix
systemctl restart postfix

Спасибо большое! Обязательно попробую сделать так )

Пытаюсь настроить уведомления, используя сервер mail.ru.
По ходу настроек узнал, что postfix не работает с ssl)
Поменял порт на 587, сервер mail.ru стал ругаться на адрес отправителя с ошибкой 550.
Дописал строку:
smtp_generic_maps = hash:/etc/postfix/generic
В файл /etc/postfix/generic добавил:
root@CentOS.CentOS mail@mail.ru
Создfk хеш-файл:
postmap /etc/postfix/generic
Перезапустил postfix.
Теперь пишет: «postfix/smtp[54631]: 402C6C7DE6: conversation with smtp.mail.ru[94.100.180.160] timed out while sending DATA command».
Что с этим делать я не знаю 🙁

Да, я тоже столкнулся с тем, что postfix не умеет работать по ssl, а в инструкции яндекса написано, что надо использовать именно ssl. Но оказалось, что starttls на 587 порту он все-таки поддерживает. В итоге все получилось.

Источник

Оцените статью