Bash-скрипт для отправки электронной почты

Bash Script Send Email



Электронная почта - очень распространенное средство коммуникации в современном мире. Любой может легко общаться или делиться любым документом с друзьями, членами семьи и коллегами, отправив электронное письмо. Как правило, для отправки электронной почты люди используют любой бесплатный почтовый сервер, например Gmail, Yahoo, Hotmail и т. Д. Но вы можете легко отправлять электронную почту из командной строки в операционной системе Linux. В Linux есть много способов отправить электронную почту. В этом руководстве показаны некоторые распространенные и простые способы отправки электронной почты в операционной системе Ubuntu с терминала.

Инициализация:

Многие команды Linux доступны для отправки электронной почты из командной строки или с помощью сценария bash. Но никакая команда отправки электронной почты не будет работать, если в системе не настроен должным образом SMTP-сервер. Вы можете настроить свой собственный SMTP-сервер для отправки электронной почты из командной строки или использовать любой бесплатный SMTP-сервер любого известного поставщика услуг электронной почты, например Gmail или Yahoo. В этом руководстве используется SMTP-сервер учетной записи Gmail. Для выполнения этой задачи вам необходимо выбрать учетную запись Gmail и включить опцию «Разрешить менее безопасным приложениям» для этой учетной записи отправлять электронную почту. Вы можете посетить следующий учебник, чтобы включить эту опцию.







https://linuxhint.com/how-to-send-email-from-php/



После включения этой опции вы должны открыть файл «/etc/ssmtp/ssmtp.conf» с правами «root» и добавить следующие строки в конец файла. Вы должны установить свой адрес электронной почты на «AuthUser» и пароль на «AuthPass», чтобы завершить настройку.



ИспользуйтеSTARTTLS= ДА
FromLineOverride= ДА
корень= админ@example.com
mailhub= smtp.gmail.com:587
AuthUser= имя пользователя@gmail.com
AuthPass= пароль

Пример-1: Использование команды Sendmail

Одна из популярных команд отправки электронной почты в Linux - это sendmail. Пользователь может легко отправить электронное письмо из командной строки с помощью этой команды. Если пакет Sendmail не установлен в системе, выполните следующую команду, чтобы установить пакет.





$судоподходящийустановитьssmtp

Предположим, содержимое электронной почты хранится в файле с именем «email.txt» со следующим содержимым. Здесь текст после «Тема:» будет отправлен как тема электронного письма, а оставшаяся часть будет отправлена ​​как тело письма.

email.txt



Тема: Отправка электронной почты с помощью sendmail
Тестирование тела письма

Запустите команду sendmail с адресом электронной почты получателя, как показано ниже.

$Отправить письмоимя пользователя@gmail.com<email.txt

Пример-2: Использование команды «mail»

Самая распространенная команда для отправки электронной почты в Linux - это команда mail. По умолчанию эта команда не установлена ​​в Ubuntu. Выполните следующую команду, чтобы установить команду `mail`.

$судоподходящийустановитьmailutils

Следующая команда покажет версию этой команды, если она установлена ​​в системе.

$Почта-V

Параметр «-s» используется в команде «mail» для определения темы электронного письма. Запустите команду «mail» с параметром «-s» с темой электронной почты и адресом электронной почты получателя, как в следующей команде. Он запросит адрес Cc :. Если вы не хотите использовать поле «Копия:», оставьте его пустым и нажмите клавишу ВВОД. Введите текст сообщения и нажмите Ctrl + D, чтобы отправить электронное письмо.

$Почта-s 'тема'имя пользователя@gmail.com

Если вы хотите добавить в команду тело сообщения электронной почты, используйте ‘<<<’ operator like the following command.

$Почта-s 'Тема сообщения'имя пользователя@gmail.com<<< 'проверка тела сообщения'

Вы также можете добавить адрес электронной почты отправителя с помощью команды `mail`, используя опцию‘ -a ’. Следующая команда отправит электронное письмо с темой, «темой сообщения», именем отправителя и адресом электронной почты, «Администратор.<[электронная почта защищена]> ’И адрес электронной почты получателя,[электронная почта защищена]и тело сообщения, «тестовое сообщение».

$ mail-s 'Тема сообщения' От: Admin <админ@example.com >
имя пользователя@gmail.com<<< 'тестовое сообщение'

Вы также можете отправить тело сообщения электронной почты с помощью команды echo и pipe (|). Следующая команда использует команду pipe (|) для отправки тела сообщения.

$выбросил 'тестовое сообщение' |Почта-s 'Тема сообщения'имя пользователя@example.com

Электронная почта может быть отправлена ​​нескольким получателям с помощью команды `mail` и добавления адресов получателей через запятую. Следующая команда будет отправлена ​​по электронной почте двум получателям.

$Почта-s 'Тестирование электронной почты'имя пользователя1@example.com, имя пользователя2@example.com<test.txt

Пример-3: Использование команды `mutt`

Как и команда `mail`, команда` mutt` по умолчанию не устанавливается в Ubuntu. Выполните следующую команду, чтобы установить команду `mutt`.

$судоподходящийустановитьдворняга

Команда `mutt` работает аналогично команде` mail`, но команда `mutt` имеет собственный редактор для отправки электронной почты. Выполните следующую команду с действующим адресом электронной почты, чтобы отправить электронное письмо.

$выбросилсообщение о тестировании|дворняга-s 'Проверка электронной почты'имя пользователя@example.com

Вы можете прикрепить любой файл, используя параметр «-a» с командой «mail» или «mutt». Следующая команда прикрепит файл items.txt при отправке электронного письма.

$выбросил 'тестовое сообщение' |дворняга-s 'Тема сообщения' items.txt-имя пользователя@gmail.com

Пример-4: Использование команды «SSMTP»

Другая команда электронной почты - это команда ssmtp. Если ssmtp не был установлен раньше, сначала установите пакет. Команда установки для ssmtp показана в примере-1. Команды ssmtp и sendmail работают аналогично.

Выполните следующую команду с действующим адресом электронной почты. Введите тему и текст сообщения электронной почты. Нажмите ctrl + D, чтобы выйти и отправить электронное письмо.

$ssmtp имя пользователя@gmail.com

Пример-5: Использование команды mailx

Вы можете отправлять HTML-контент в теле письма, не отправляя просто текстовое сообщение. Создайте HTML-файл с именем «test.html» для использования в качестве тела сообщения.

test.html

< html >
< тело >>
< h3 >Отправка электронной почты</ h3 >
< делать размерзнак равно'2' цветзнак равно'сеть'>Тестирование тела сообщения</ делать >
<</ тело >
</ html >

Команда mailx работает как команда mail. Вы должны указать Content-Type как text / html для отправки HTML-содержимого в качестве тела сообщения в команде `mailx`. Следующая команда отправит содержимое файла test.html в качестве тела сообщения электронной почты.

$ mailx 'Content-Type: text / html' -s 'Отправка электронной почты с помощью mailx'
<test.html'[электронная почта защищена]'

Когда вы проверите почтовый ящик учетной записи электронной почты получателя, список электронных писем будет показан как следующее изображение.

Заключение

Надеюсь, читатель сможет легко отправлять электронную почту из командной строки в Linux после того, как правильно попрактикуется с приведенными выше командами.