Отправлять почту с терминала linux в одной строке

Я знаю, что в linux есть команда mail для отправки писем через командную строку. Как я могу отправить простое электронное письмо с одной строкой из терминала?

Например:

mail [email protected] [subject] [body]

И отправлено ли электронное письмо без каких-либо подтверждений или запросов пользователю?

Причина в том, что я хочу отправить короткое сообщение по электронной почте себе, когда определенное событие происходит в программе java. Идея состоит в том, что я буду использовать Runtime.getRuntime()... и т.д., Чтобы отправить mail command из моей программы java.

Я использовал cron, чтобы сделать что-то подобное в прошлом, но текущая реализация не использует cron, поэтому мне нужно попробовать это вместо.

Ответ 1

почта может представлять собой довольно много программ в системе Linux. За ним стоит либо sendmail, либо postfix. Я рекомендую последнее.

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

 echo "My message" | mail -s subject [email protected]

Дополнительную информацию см. в руководстве.

Что касается настройки постфикса, есть много статей в Интернете о том, как это сделать. Если вы не находитесь на общедоступном сервере с зарегистрированным доменом, вы обычно хотите переслать электронное письмо на SMTP-сервер, на который вы можете отправить электронное письмо.

Для gmail, например, следуйте http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ или любой другой подобный учебник.

Ответ 2

Вы можете использовать эхо с каналом, чтобы избежать подсказок или подтверждения.

echo "This is the body" | mail -s "This is the subject" [email protected]

Ответ 3

echo "Subject: test" | /usr/sbin/sendmail [email protected]

Это позволяет сделать это в одной командной строке без необходимости повторять текстовый файл. Этот ответ основывается на ответе @mti2935. Так что кредит идет туда.

Ответ 4

Вы также можете использовать sendmail:

/usr/sbin/sendmail [email protected] < /file/to/send

Ответ 5

Для пользователей Ubuntu: сначала вам нужно установить mailutils

sudo apt-get install mailutils

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

echo "this is a test mail" | mail -s "Subject of mail" [email protected]

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

Включите доступ для менее безопасных приложений отсюда

Ответ 7

Отправка простой почты:

$ mail -s "test message from centos" [email protected]
hello from centos linux command line

Ctrl + D, чтобы закончить