Linux send email yandex

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

Подготовка

Для начала устанавливаем утилиту для отправки почты. В противном случае мы увидим ошибку mail: command not found.

В Debian / Ubuntu:

apt-get install mailutils

В CentOS / Red Hat:

yum install mailx

Синтаксис

Можно отправить сообщение следующей командой:

echo «Test text» | mail -s «Test title» master@dmosk.ru

* в данном примере будет отправлено письмо на электронный адрес master@dmosk.ru с темой Test title и телом письма — Test text.

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

Примеры использования командной строки для email-отправки

1. Отправка письма с вложением

Для разных типов дистрибутива Linux команды могут отличаться.

а) для CentOS / Red Hat:

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog master@dmosk.ru

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -a /var/log/maillog -a /var/log/maillog2 master@dmosk.ru

echo ‘Attachment’ | mail -s ‘Subject attachment message’ -A /var/log/maillog -A /var/log/maillog2 master@dmosk.ru

* где /var/log/maillog и /var/log/maillog2 — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции a и A — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла.

2. Несколько получателей

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

echo «Test text» | mail -s «Test title» master@dmosk.ru,shmaster@dmosk.ru

* в данном примере мы отправил письмо на ящики master@dmosk.ru и shmaster@dmosk.ru.

3. Отправка с копией

Отправить копию на адрес master2@dmosk.ru:

echo «Test copy» | mail -s «Test copy title» master@dmosk.ru -c master2@dmosk.ru

Отправить скрытую копию на адрес master3@dmosk.ru:

echo «Test hidden copy» | mail -s «Test hidden copy title» master@dmosk.ru -b master3@dmosk.ru

4. Указать отправителя

В CentOS / Red Hat:

echo «Test text» | mail -s «Test title» -r postmaster@dmosk.ru master@dmosk.ru

В Debian / Ubuntu:

echo «Test text» | mail -s «Test title» master@dmosk.ru -aFrom:postmaster@dmosk.ru

5. Отправка через другой SMTP сервер

а) Для Ubuntu / Debian:

echo «Test text» | mail -s «Test title» -a «Smtp: smtp.mail.ru:25» -a «From: postmaster@dmosk.ru» -a «Return-path: postmaster@dmosk.ru» master@dmosk.ru

б) Для CentOS / Red Hat:

echo «Test text» | mail -s «Test title» -S smtp=»smtp.mail.ru:25″ master@dmosk.ru

Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее:

echo «Test text» | mail -v -s «Test title» -S smtp=»smtp.dmosk.ru:587″ -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user=»master@dmosk.ru» -S smtp-auth-password=»password» -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@dmosk.ru master@dmosk.ru

Читайте также:  Активатор windows 10 после обновления

* где smtp.dmosk.ru — сервер smtp; 587 — порт для подключения к серверу отправки; smtp-use-starttls указывает на использование шифрования через TLS; smtp-auth=login задает аутентификацию с использованием логина и пароля; smtp-auth-user и smtp-auth-password — соответственно логин и пароль; ssl-verify=ignore отключает проверку подлинности сертификата безопасности; nss-config-dir указывает на каталог с базами nss; from задает поле FROM

При возникновении проблем, можно воспользоваться программой mutt. Сначала поставим ее.

а) если используем CentOS / Red Hat:

yum install mutt

б) если используем Ubuntu / Debian:

apt-get install mutt

Теперь можно пользоваться. Синтаксис:

echo «Текст сообщения» | mutt -s «Тема» [дополнительные опции] —

Примеры использования Mutt

1. Отправить вложение:

echo «Attachment» | mutt -s «subject» -a /var/log/maillog — master@dmosk.ru

* где /var/log/maillog — файл, который будет прикреплен к письму.

2. Указать отправителя:

echo «Mail From» | mutt -s «subject» -e ‘my_hdr From: Дмитрий

* данной командой mutt отправит письмо от postmaster@dmosk.ru.

3. Отправка через другой сервер.

Для начала, открываем файл с конфигурацией Mutt:

* в данном примере мы отправим всю нашу почту через узел smtp.mail.ru, порт 25.

Также можно добавить при необходимости:

set smtp_user = user
set smtp_pass = password
set ssl_verify_host = no
set ssl_verify_dates = no
set ssl_starttls = no
set ssl_force_tls = no

  • smtp_user — имя учетной записи, под которой нужно авторизоваться на SMTP.
  • smtp_pass — пароль для аутентификации.
  • ssl_verify_host — нужно ли проверять валидность сертификата.
  • ssl_verify_dates — нужно ли проверять дату действия сертификата.
  • ssl_starttls — нужно ли использовать STARTTLS.
  • ssl_force_tls — нужно ли принудительное использование TLS.

Теперь можно отправлять письмо:

echo «Mail From» | mutt -s «subject» -e ‘my_hdr From: Дмитрий

Источник

Как настроить отправку почты с Linux на реальный почтовый ящик

Поднят Centos 7 на виртуалке, за шлюзом. У Centos доступ в инет есть. Обновляется, скачивает.

Хочу настроить отправку сообщений на свой емайл на яндексе (есть и майл, и gmail для проверки).

Письмо не приходит. В логах:

Почтовый ящик указываю реальный, только для форума заменила на real_mail.

Как сделать, чтобы письмо дошло?

Порты ведь для этого открывать не надо, если только исходящая почта нужна?

Почтовые сервера yandex игнорируют получение почты от почтовых серверов с ненормальными именами. И не только яндекса, это в принципе защита от спама.

Имя должно быть mail.домен, pop.домен, smpt.домен или imap.домен.

У твоего почтового сервера должен быть белый IP и PTR запись в DNS твоего домена, ну либо почтовый сервер может находиться за шлюзом, но должны быть проброшены соответствующие порты.

Если у тебя всего этого нет.

То смотри pop и imap сервера твоего почтового ящика и настраивай почтовый клиент авторизоваться на этих серверах по имени и паролю.

Или описывай более нормально что ты делаешь? Ты настраиваешь почтовый сервер для некоторого домена?

на костылик — msmtp

Для корректной отправки сообщений необходимо использовать валидный адрес и валидный сервер. Один из вариантов — для уже установленного postfix настроить mail relay, чтобы письма уходили от имени ящика gmail и с серверов gmail.

Читайте также:  Apple touch bar windows

Спасибо за ответ!

У меня есть белый IP. PTR запись в DNS — нет. Почтового сервера — нет.

Нужно, по сути, чтобы скрипт при обработке отсылал уведомление на мою почту с результатами. Нашла туториал со скриптом, там есть команда mail, решила проверить, как это работает. Выяснилось — не работает.

Нужен простой вариант. Без ДНС и PTR — никак? Не для домена.

Часть скрипта, в котором участвует mail:

Для того, чтобы отправить себе письмо, достаточно настроить msmtp и отправлять себе от своего имени (у меня это работает). Конфиг — девять строчек, примеров в интернете — валом. Дерзай.

Настраивать для этого MTA у себя не нужно, оно работает как smtp-клиент.

Спасибо за ответ!

Получилось настроить по инструкции. Спасибо большое!! Правда, сначала гугл ругнулся, что приложение ненадежное и авторизовывать не будет, но вот тут можете разрешить ненадежные приложения и письмо дошло.

connect to mx.yandex.ru[2a02:6b8::89]:25: Network is unreachable

А у тебя IPv6 настроен ? Почему он на 2a02:6b8::89 лезет, это первый вопрос, почему не получается — второй. Про ptr и правильные имена будет вопрос потом, когда Яндекс ответит и скажет reject.

хотя, если уже получилось, сеть уже как-то настроилась. Или шлётся через то, что IPv6 адреса не имеет.

Порты ведь для этого открывать не надо, если только исходящая почта нужна?

к почтовым серверам целая куча требований. Это так не работает. У тебя есть учетная запись на каком-нибудь публичном почтовом сервисе? Используй эту запись для настройки relay. Смысл в том, чтобы сказать твоего локальному MTA что использовать в качестве relay для отправки писем в паблик. Проблем не должно возникнуть, я думаю, там ничего сложного.

Источник

Отправка почты из командной строки (консоли) 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, их можно посмотреть в файле:

Читайте также:  Создание форматирование загрузочной флешки windows

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

Чтобы указать другого отправителя письма (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 скрипты или ватчдоги (удобно для контроля их выполнения).

Источник

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