Страницы

12 августа 2016 г.

Отправка почтового сообщения из консоли

В данной статье рассмотрена отправка почтовых сообщений из консоли Ubuntu Server 14.04(16.04) средствами пакета ssmtp, с использованием почтового ящика Gmail.

Устанавливаем ssmtp:
sudo apt-get install ssmtp
Редактируем файл конфигурации ssmtp
sudo nano /etc/ssmtp/ssmtp.conf
Удаляем все из /etc/ssmtp/ssmtp.conf и вставляем это:
mailhub=smtp.gmail.com:587
UseTLS=YES
UseSTARTTLS=YES
hostname=ubuntu
authuser=******@gmail.com
authpass=***********
FromLineOverride=YES
Debug=YES

где:
smtp.gmail.com:587 - реквизиты SMTP Gmail (не менять, если ящик на Gmail);
UseTLS=YES, UseSTARTTLS=YES, FromLineOverride=YES - должно присутствовать для авторизации на Gmail;
hostname=ubuntu - имя хоста отправителя;
authuser=******@gmail.com - почтовый ящик отправителя;
authpass=*********** - пароль к почтовому ящику отправителя.

Правим файл revaliases
sudo nano /etc/ssmtp/revaliases
Удаляем все из /etc/ssmtp/revaliases и вставляем это:
username:mymailbox@gmail.com:smtp.gmail.com:587
где:
username - имя пользователя в системе (изменить на свое значение);
mymailbox@gmail.com - почтовый ящик отправителя на Gmail (изменить на свое значение);
smtp.gmail.com:587 - реквизиты SMTP Gmail (не менять, если ящик на Gmail).

Устанавливаем sendmail:
sudo apt-get install sendmail
Устанавливаем mailutils:
sudo apt-get install mailutils
Смотрим, куда ведет mail
whereis mail
Видим что-то вида:
mail: /usr/bin/mail.mailutils /usr/bin/mail /etc/mail /usr/share/man/man1/mail.1.gz
Проверяем симлинк:
$ cd /usr/sbin && ls -l | grep sendmail
Видим что-то вида:
-rwxr-xr-x 1 root root    23572 Dec 10  2015 checksendmail
lrwxrwxrwx 1 root root        5 Apr 13 11:19 sendmail -> ssmtp
-rwxr-xr-x 1 root root    21677 Dec 10  2015 sendmailconfig

Отправляем почту из консоли
Синтаксис такой:
echo "Тестовое сообщение" | ssmtp -v -s <получатель>@domain.com
Пример:
echo "Это тестовое письмо из консоли" | ssmtp -v -s mymail@inbox.ru
Вывод консоли:
[<-] 220 smtp.gmail.com ESMTP p128sm754712lfb.32 - gsmtp
[->] EHLO ubuntu
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO ubuntu
[<-] 250 SMTPUTF8
[->] AUTH LOGIN
[<-] 334 VXBlcm5hbXU6
[->] bXkuYjB0Y2tiYHhAZ21haWwuY29t
[<-] 334 UGFzc3vvcmQ6
[<-] 235 2.7.0 Accepted
[->] MAIL FROM:<my.mail@gmail.com>
[<-] 250 2.1.0 OK p128sm754712lfb.32 - gsmtp
[->] RCPT TO:<mymail@inbox.ru>
[<-] 250 2.1.5 OK p128sm754712lfb.32 - gsmtp
[->] RCPT TO:</home/box/file@ubuntu>
[<-] 250 2.1.5 OK p128sm754712lfb.32 - gsmtp
[->] DATA
[<-] 354  Go ahead p128sm754712lfb.32 - gsmtp
[->] Received: by ubuntu (sSMTP sendmail emulation); Fri, 12 Aug 2016 03:34:46 -0500
[->] From: "box" <my.mail@gmail.com>
[->] Date: Fri, 12 Aug 2016 03:34:46 -0500
[->] Это тестовое письмо из консоли
[->]
[->] .
[<-] 250 2.0.0 OK 1470990888 p128sm754712lfb.32 - gsmtp
[->] QUIT
[<-] 221 2.0.0 closing connection p128sm754712lfb.32 - gsmtp
Отправляем текстовое сообщение из файла
Создаем файл и пишем в него текст сообщения
echo "Тестовое сообщение" > /home/<имя пользователя>/message
Отправляем текст из файла
ssmtp <получатель>@domain.com < /home/<имя пользователя>/message

Комментариев нет:

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