Как отправить почту из командной строки?

Короткий ответ: no.

Несколько более длинный ответ заключается в том, что расширения Chrome не будут работать с Firefox, и наоборот. Тем не менее, вы можете найти расширение Firefox, которое выполняет более или менее одно и то же задание, но я не слышал об одном подобном chromify-osd.

196
задан 13 November 2010 в 00:27

142 ответа

Попробуйте установить Mutt E-mail Client. Другой вариант - использование emacs с gnus. Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

31
ответ дан 26 May 2018 в 00:27
  • 1
    Принял это, поскольку он не требует какой-либо конфигурации и достаточно удобен для пользователя. – Olivier Lalonde 14 November 2010 в 01:00
  • 2
    Подождите. mutt - удобный для пользователя? самый сумасшедший один лайнер, который я прочитал сегодня :) – Stann 22 April 2011 в 03:19

Попробуйте установить Mutt E-mail Client. Другой вариант - использование emacs с gnus. Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 25 July 2018 в 22:54

Попробуйте установить Mutt E-mail Client. Другой вариант - использование emacs с gnus. Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 31 July 2018 в 10:25

Попробуйте установить Mutt E-mail Client. Другой вариант - использование emacs с gnus. Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 31 July 2018 в 11:28

Попробуйте установить Mutt E-mail Client. Другой вариант - использование emacs с gnus. Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 2 August 2018 в 04:17

Попробуйте установить Mutt E-mail Client . Другой вариант - использование emacs с gnus . Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 4 August 2018 в 20:22

Попробуйте установить Mutt E-mail Client . Другой вариант - использование emacs с gnus . Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 6 August 2018 в 04:21

Попробуйте установить Mutt E-mail Client . Другой вариант - использование emacs с gnus . Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 7 August 2018 в 22:28

Попробуйте установить Mutt E-mail Client . Другой вариант - использование emacs с gnus . Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 10 August 2018 в 10:36

Попробуйте установить Mutt E-mail Client . Другой вариант - использование emacs с gnus . Другие варианты также ... IMHO, вы должны использовать более подробную информацию в своих вопросах или несколько разных ответов на свой вопрос, который вы получите: -)

32
ответ дан 13 August 2018 в 17:08
  • 1
    Принял это, поскольку он не требует какой-либо конфигурации и достаточно удобен для пользователя. – Olivier Lalonde 14 November 2010 в 01:00
  • 2
    Подождите. mutt - удобный для пользователя? самый сумасшедший один лайнер, который я прочитал сегодня :) – Stann 22 April 2011 в 03:19
Установить ssmtp:
sudo apt-get install ssmtp
Изменить конфигурационный файл ssmtp:
gksu gedit /etc/ssmtp/ssmtp.conf
Добавить следующий текст:
root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=password
FromLineOverride=YES
UseTLS=YES
Запустить ssmtp и указать адрес электронной почты получателя:
ssmtp recepient_name@gmail.com
Предоставить данные сообщения следующим образом:
To: recipient_name@gmail.com
From: username@gmail.com
Subject: Sent from a terminal!

Your content goes here. Lorem ipsum dolor sit amet, consectetur adipisicing.
(Notice the blank space between the subject and the body.)
Нажмите Ctrl + D для отправки.

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

ssmtp recipient_name@gmail.com < filename.txt
140
ответ дан 26 May 2018 в 00:27
  • 1
    Он чувствует себя странно, оставляя мой почтовый пароль открытым в некоторых файлах на компьютере. Это безопасно? – oadams 13 November 2010 в 06:50
  • 2
    @oadams не очень безопасно. Используйте двухэтапную аутентификацию, чтобы снизить риск, или использовать почтовый шлюз, который не требует пароля, например, вашего интернет-провайдера. – itsadok 25 March 2012 в 18:54
  • 3
    Не устанавливайте ssmtp на сервере с установленным постфикс. Postfix будет удален. Вместо этого просто используйте sendmail user@example.com & lt; file.txt, который будет работать с postfix или ssmtp. – Alistair Buxton 10 December 2012 в 04:05
  • 4
    Еще одна странная вещь, которую я хотел рассказать здесь, это не сработало для меня, когда у меня был длинный / сложный пароль, но работал, когда я изменил его на простой пароль, странный, но верный. Я также слышал то же от кого-то другого, но пробовал его после множества неудачных попыток отправить почту и amp; как только я упростил пароль, к моему удивлению, он просто сработал;) – Rajat Gupta 1 March 2014 в 18:48
  • 5
    Если Gmail не позволяет вашему серверу получить доступ, войдите в Gmail на сервере с помощью браузера командной строки. askubuntu.com/questions/460022/using-terminal-as-a-web-browser – Sanghyun Lee 28 December 2014 в 18:55

В большинстве случаев вам не нужно настраивать SMTP-сервер, вы можете просто использовать mail из командной строки (если он еще не присутствует, установите с помощью sudo apt-get install mailutils). (Или если вы находитесь на сервере, на котором настроен sendmail и т. Д.)

marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com
Subject: Hello World!
This is an email to myself.

Hope all is well.
.
Cc: 

Вы завершаете сообщения с помощью одного . в строке. Вот когда mail предложит вам ввести Cc: информацию (или оставить пустым), а mail затем распечатает дополнительную информацию о том, что она пытается сделать, а также детализирует обработку соединений, передачи и получение данных с почтового сервера.

81
ответ дан 26 May 2018 в 00:27
  • 1
    Я бы добавил ответ, чтобы включить "sudo apt-get install mailutils " так как его нет на чистой установке Ubuntu 10.04. Кроме того, завершение сообщения с помощью. на одной строке не работает. Мне пришлось нажать Ctrl-D " вместо. Наконец, сообщение не прошло! – Olivier Lalonde 14 November 2010 в 00:40
  • 2
    @OlivierLalonde sudo apt-get install mailutils установит SMTP-сервер, который postfix, который может быть немного лишним для некоторых людей. – vaab 4 October 2013 в 12:47
  • 3
    mailutils также установит mysql! – chmike 24 April 2014 в 14:16
  • 4
    -v не в моей установке почты 2.99.98, также пришлось использовать Ctrl + D для завершения – markmnl 17 May 2014 в 22:53
  • 5
    Пожалуйста, обновите этот вопрос, он устарел. – Blauhirn 18 May 2017 в 18:55
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail

use:

sendemail -f fromuser@gmail.com -t touser@domain.com -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu gmailaccount@gmail.com -xp gmailpassword 

Если вы не хотите указывать свой пароль в командной строке (как правило, это не очень хорошо), вы можете опустить этот параметр и sendemail подскажите вам пароль ... и отобразите его на экране, но, по крайней мере, это не будет в истории вашей командной строки.

43
ответ дан 26 May 2018 в 00:27
  • 1
    Отправка почты с учетной записи GMail с использованием sendmail наиболее достоверной. Спасибо. – Mark Tomlin 5 March 2013 в 23:09
  • 2
    Найдите патч здесь , чтобы не повторять пароль. – Arun 9 September 2015 в 19:13
  • 3
    Я должен был указать порт с -s smtp.gmail.com:587. – Joe Mornin 1 April 2016 в 02:19
  • 4
    добавьте пробел перед командной строкой, чтобы не сохранить его в истории командной строки – pl-94 5 January 2017 в 22:03
  • 5
    другой способ не отображать его на экране bash: сохранить пароль в файл, а затем из файла в переменную среды, например: pass=$(cat my_password); sendemail... -xp $name ... и, конечно, если вы его программным способом вызываете, вы можете сделать что-то подобное, например: ruby ​​system("sendemail ... -xp #{File.read 'my_password'}...") также он может потерпеть неудачу в первый раз, вы должны получить электронное письмо на эту учетную запись, предлагая вам «включить менее безопасные приложения»; то он может работать. – rogerdpack 26 April 2017 в 00:34

mpack - отличный способ отправки файлов в командной строке.

apt-get install mpack

use:

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn
21
ответ дан 26 May 2018 в 00:27

Вам нужна MTA для отправки почты. Для этого используйте postfix:

sudo apt-get install postfix

Для отправки электронной почты:

echo "test message" | mailx -s 'test subject' myemail@mydomain.com

HELP

14
ответ дан 26 May 2018 в 00:27
  • 1
    Вам также нужно установить mailutils для mailx, не так ли? – Nick 15 July 2014 в 10:26
  • 2
    Хотелось бы, чтобы это было действительно так просто, но если вы не кто-то особенный, это не сработает. 99.9999% интернет-провайдеров будут игнорировать почту с частных постфиксных серверов, потому что 9.99999 раз из 10 они спамеры. – Cerin 13 April 2015 в 04:32
  • 3
    это не сработало для меня, он попросил установить mailutils, когда я ввел это в терминал – mostafiz rahman 14 February 2016 в 09:59

Установите пакет sendmail, затем введите

sendmail -t receiver@example 

, затем напишите свое письмо, затем нажмите Ctrl + D

14
ответ дан 26 May 2018 в 00:27

Вы можете отправить электронное письмо из командной строки с помощью Telnet или NetCat.

Здесь все объяснено.

hanoo@hp_laptop% nc 127.0.0.1 25
220 hp_laptop.localdomain ESMTP Postfix
EHLO man
250 hp_laptop.localdomain
MAIL FROM: <netcat@postfix.com>
250 2.1.0 Ok
RCPT TO: <target@host.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is the body of my mail,
this is the second line...
.
250 2.0.0 Ok: queued as 9C12E7F404
8
ответ дан 26 May 2018 в 00:27
  • 1
    При использовании этого метода немного сложно использовать SSL;) – iX3 31 December 2012 в 05:09
  • 2
    @ iX3 просто использую swaks, и вы в порядке с SSL / TLS тоже ;-) – Germar 23 June 2015 в 02:28
  • 3
    Или openssl s_client -starttls smtp ... – Raman 7 March 2017 в 20:54
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

или

cat "afile" | mail -s "subject" someone@dest_email.com
8
ответ дан 26 May 2018 в 00:27
  • 1
    просто добавить для легкого тестирования: echo " Hello world! " | mail -s " Hello " mail@example.org – Bohne 1 September 2015 в 15:54
  • 2
    Если у кого-то нет команды mail, просто запустите: sudo apt-get install mailutils в Ubuntu / Debian или yum install mailx в CentOS / Redhat – Giovanni Benussi 22 September 2016 в 16:10

Если вы пытаетесь отправить электронную почту из системы, whitch не запускает собственный почтовый сервер (например, настольную систему), вам нужно установить что-то вроде nullmailer или esmtp, которые перенаправляют вашу локальную почту на " реальный "почтовый сервер.

В качестве инструментов командной строки вы можете установить почту или mailx (пакеты mailutils, heirloom-mailx или bsd-mailx). Если вам нужны вложения, попробуйте biabam.

6
ответ дан 26 May 2018 в 00:27
  • 1
    Мне нравится bsd-mailx для команды -E и cronjobs – meffect 10 May 2015 в 08:46

Я никогда не пробовал, но есть команда mail, которая может отправлять почту. См. Man mail.

Чтобы проверить местную электронную почту:

echo message | mail username@localhost
5
ответ дан 26 May 2018 в 00:27
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com

, где filename - то же самое: он обозначает входной файл и удаленный файл.

5
ответ дан 26 May 2018 в 00:27

Вы можете попробовать следующее:

mail name@mailserver.com -s "Attached file" <<EOF                 
Hi

~| uuencode $HOME/filename.txt filename.txt

EOF

Он работает с GNU Mailutils, проверьте сайт для получения дополнительной информации.

2
ответ дан 26 May 2018 в 00:27

В дополнение к выше я все еще получал эту ошибку

echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv  somebody@mil.gov
[<-] 220 smtp.gmail.com ESMTP v193sm19198825qka.18 - gsmtp
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] aG94Z2VuZUBrrrFpbC5jb20=
[<-] 334 UGFzweliecmQ6
[<-] 534 5.7.14  https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp
ssmtp: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp)

РЕШЕНИЕ: сброс пароля gmail, даже если текущий пароль правильный ... возможно, предосторожность безопасности Google

0
ответ дан 26 May 2018 в 00:27

Запуск:

sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf

Здесь должно быть добавлено следующее:

# The user that gets all the mails (UID < 1000, usually the admin)
root=yourusernameofgmail@gmail.com

# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also https://support.google.com/mail/answer/78799
mailhub=smtp.gmail.com:587

# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com

# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes

# Username/Password
AuthUser=yourusernameofgmail
AuthPass=yourGmailPassowrd
AuthMethod=LOGIN

# Email 'From header's can override the default domain?
FromLineOverride=yes

Запустить :

sudo -H gedit /etc/ssmtp/revaliases

Войдите туда:

root:yourusernameofgmail@gmail.com:smtp.gmail.com:587

Включите «менее безопасные приложения» в Gmail: https://support.google.com/accounts/answer/6010255?hl=ru&!d6]

Включить «менее безопасные приложения» в Gmail:

echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`
0
ответ дан 26 May 2018 в 00:27

В большинстве случаев вам не нужно настраивать SMTP-сервер, вы можете просто использовать mail из командной строки (если он еще не присутствует, установите с помощью sudo apt-get install mailutils). (Или если вы находитесь на сервере, на котором настроен sendmail и т. Д.)

marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com Subject: Hello World! This is an email to myself. Hope all is well. . Cc:

Вы завершаете сообщения с помощью одного . в строке. Вот когда mail предложит вам ввести Cc: информацию (или оставить пустым), а mail затем распечатает дополнительную информацию о том, что она пытается сделать, а также детализирует обработку соединений, передачи и получение данных с почтового сервера.

81
ответ дан 25 July 2018 в 22:54
  • 1
    Я бы добавил ответ, чтобы включить "sudo apt-get install mailutils & quot; так как его нет на чистой установке Ubuntu 10.04. Кроме того, завершение сообщения с помощью. на одной строке не работает. Мне пришлось нажать Ctrl-D & quot; вместо. Наконец, сообщение не прошло! – Olivier Lalonde 14 November 2010 в 00:40
  • 2
    @OlivierLalonde sudo apt-get install mailutils установит SMTP-сервер, который postfix, который может быть немного лишним для некоторых людей. – vaab 4 October 2013 в 12:47
  • 3
    mailutils также установит mysql! – chmike 24 April 2014 в 14:16
  • 4
    -v не в моей установке почты 2.99.98, также пришлось использовать Ctrl + D для завершения – markmnl 17 May 2014 в 22:53
  • 5
    Пожалуйста, обновите этот вопрос, он устарел. – Blauhirn 18 May 2017 в 18:55

mpack - отличный способ отправки файлов в командной строке.

apt-get install mpack

use:

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn
21
ответ дан 25 July 2018 в 22:54

Вам нужна MTA для отправки почты. Для этого используйте postfix:

sudo apt-get install postfix

Для отправки электронной почты:

echo "test message" | mailx -s 'test subject' myemail@mydomain.com

HELP

16
ответ дан 25 July 2018 в 22:54
  • 1
    Вам также нужно установить mailutils для mailx, не так ли? – Nick 15 July 2014 в 10:26
  • 2
    Хотелось бы, чтобы это было действительно так просто, но если вы не кто-то особенный, это не сработает. 99.9999% интернет-провайдеров будут игнорировать почту с частных постфиксных серверов, потому что 9.99999 раз из 10 они спамеры. – Cerin 13 April 2015 в 04:32
  • 3
    это не сработало для меня, он попросил установить mailutils, когда я ввел это в терминал – mostafiz rahman 14 February 2016 в 09:59
  • 4
    Идем дальше и устанавливаем mailutils. Вам не нужен постфикс IIRC. – uav 19 July 2018 в 16:51
Установить ssmtp: sudo apt-get install ssmtp Изменить конфигурационный файл ssmtp: gksu gedit /etc/ssmtp/ssmtp.conf Добавить следующий текст: root=username@gmail.com mailhub=smtp.gmail.com:465 rewriteDomain=gmail.com AuthUser=username AuthPass=password FromLineOverride=YES UseTLS=YES Запустить ssmtp и указать адрес электронной почты получателя: ssmtp recepient_name@gmail.com Предоставить данные сообщения следующим образом: To: recipient_name@gmail.com From: username@gmail.com Subject: Sent from a terminal! Your content goes here. Lorem ipsum dolor sit amet, consectetur adipisicing. (Notice the blank space between the subject and the body.) Нажмите Ctrl + D для отправки.

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

ssmtp recipient_name@gmail.com < filename.txt
143
ответ дан 25 July 2018 в 22:54
  • 1
    Чувствуется странным, что мой электронный пароль открыт в каком-то файле на компьютере. Это безопасно? – oadams 13 November 2010 в 06:50
  • 2
    @oadams не очень безопасно. Используйте двухэтапную аутентификацию, чтобы снизить риск, или использовать почтовый шлюз, который не требует пароля, например, вашего интернет-провайдера. – itsadok 25 March 2012 в 18:54
  • 3
    Не устанавливайте ssmtp на сервере с установленным постфикс. Postfix будет удален. Вместо этого просто используйте sendmail user@example.com & lt; file.txt, который будет работать с postfix или ssmtp. – Alistair Buxton 10 December 2012 в 04:05
  • 4
    Еще одна странная вещь, которую я хотел рассказать здесь, это не сработало для меня, когда у меня был длинный / сложный пароль, но работал, когда я изменил его на простой пароль, странный, но верный. Я также слышал то же от кого-то другого, но пробовал его после множества неудачных попыток отправить почту и amp; как только я упростил пароль, к моему удивлению, он просто сработал;) – Rajat Gupta 1 March 2014 в 18:48
  • 5
    Если Gmail не позволяет вашему серверу получить доступ, войдите в Gmail на сервере с помощью браузера командной строки. [D0] askubuntu.com/questions/460022/using-terminal-as-a-web-browser – Sanghyun Lee 28 December 2014 в 18:55

Если вы пытаетесь отправить электронную почту из системы, whitch не запускает собственный почтовый сервер (например, настольную систему), вам нужно установить что-то вроде nullmailer или esmtp, которые перенаправляют вашу локальную почту на " реальный "почтовый сервер.

В качестве инструментов командной строки вы можете установить почту или mailx (пакеты mailutils, heirloom-mailx или bsd-mailx). Если вам нужны вложения, попробуйте biabam.

6
ответ дан 25 July 2018 в 22:54
  • 1
    Мне нравится bsd-mailx для команды -E и cronjobs – meffect 10 May 2015 в 08:46
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

или

cat "afile" | mail -s "subject" someone@dest_email.com
8
ответ дан 25 July 2018 в 22:54
  • 1
    просто добавить для легкого тестирования: echo & quot; Hello world! & quot; | mail -s & quot; Hello & quot; mail@example.org – Bohne 1 September 2015 в 15:54
  • 2
    Если у кого-то нет команды mail, просто запустите: sudo apt-get install mailutils в Ubuntu / Debian или yum install mailx в CentOS / Redhat – Giovanni Benussi 22 September 2016 в 16:10

Другие вопросы по тегам:

Похожие вопросы: