Отправлять почту с терминала 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:
Включите доступ для менее безопасных приложений отсюда
Ответ 6
Вы можете установить почтовый пакет в Ubuntu с помощью команды ниже.
Для Ubuntu -:
$ sudo apt-get install -y mailutils
Для CentOs -:
$ sudo yum install -y mailx
Команда Test Mail -:
$ echo "Mail test" | mail -s "Subject" [email protected]
Ответ 7
Отправка простой почты:
$ mail -s "test message from centos" [email protected]
hello from centos linux command line
Ctrl + D, чтобы закончить