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

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

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

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

142 ответа

  1. Установить ssmtp : sudo apt-get install ssmtp
  2. Отредактировать конфигурационный файл ssmtp: gksu gedit /etc/ssmtp/ssmtp.conf
  3. Добавить следующий текст: root=username@gmail.com mailhub = smtp.gmail.com: 465 rewriteDomain = gmail .com AuthUser = имя пользователя AuthPass = пароль FromLineOverride = YES UseTLS = YES
  4. Запустите ssmtp и укажите адрес электронной почты получателя: ssmtp recepient_name@gmail.com
  5. Укажите данные сообщения следующим образом: Кому: recipient_name@gmail.com От: username@gmail.com Тема: Отправлено с терминала! Ваш контент идет здесь. Lorem ipsum dolor sit amet, consectetur adipisicing. (Обратите внимание на пустое пространство между объектом и телом.)
  6. Нажмите Ctrl + D, чтобы отправить.

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

  ssmtp recipient_name@gmail.com & lt;  filename.txt  
142
ответ дан 10 August 2018 в 10:36

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

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

6
ответ дан 10 August 2018 в 10:36
  mail -s "subjet" -a "attchedfile_name" someone@dest_email.com  

или

  cat "afile" |  mail -s "subject" someone@dest_email.com  
8
ответ дан 10 August 2018 в 10:36

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

Чтобы проверить местный адрес электронной почты:

  echo message |  mail username @ localhost  
5
ответ дан 10 August 2018 в 10:36
  apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail  

использование:

  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 предложит вам пароль ... и отобразит его на экране , но, по крайней мере, это не будет в истории вашей командной строки.

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

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

  marco @ dagobah: ~ $ mail -v marco.ceppi.use@gmail.com Тема: Hello World!  Это письмо для меня.  Надеюсь все хорошо.  ,  Cc:  

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

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

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

  apt-get install mpack  

use:

  mpack -s "файл, который вы хотите" ./data.pdf loser@supergoober.cn  
21
ответ дан 10 August 2018 в 10:36

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

  mail name@mailserver.com -s "Прикрепленный файл" & lt; EOF Hi ~ |  uuencode $ HOME / filename.txt filename.txt EOF  

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

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

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

  echo «Тестирование сообщения с сервера Linux с помощью ssmtp» |  sudo ssmtp -vvv somebody@mil.gov [& lt; -] 220 smtp.gmail.com ESMTP v193sm19198825qka.18 - gsmtp [- & gt;] EHLO localhost [& lt; -] 250 SMTPUTF8 [- & gt;] STARTTLS [& lt; - -  ] 220 2.0.0 Готов к запуску TLS [- & gt;] EHLO localhost [& lt; -] 250 SMTPUTF8 [- & gt;] AUTH LOGIN [& lt; -] 334 VXNlcm5hbWU6 [- & gt;] aG94Z2VuZUBrrrFpbC5jb20 = [& lt; -] 334  UGFzweliecmQ6 [& lt; -] 534 5.7.14 https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp ssmtp: Ошибка авторизации (534 5.7.14 https://support.google.com/mail  / answer / 78754 v193sm19198825qka.18 - gsmtp)  

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

0
ответ дан 13 August 2018 в 17:08

Запуск:

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

Необходимо добавить следующее: там:

  # Пользователь, который получает все письма (UID & lt; 1000, обычно администратор) root=yourusernameofgmail@gmail.com # Почтовый сервер (где отправляется почта)  оба порта 465 или 587 должны быть приемлемыми. # См. также https://support.google.com/mail/answer/78799 mailhub = smtp.gmail.com: 587 # Адрес, на который почта отправляется для аутентификации пользователя.  rewriteDomain = gmail.com # Использовать SSL / TLS перед началом согласования UseTLS = Да ИспользоватьSTARTTLS = Да # Имя пользователя / Пароль AuthUser = yourusernameofgmail AuthPass = yourGmailPassowrd AuthMethod = LOGIN # Email 'Из заголовка можно переопределить домен по умолчанию?  FromLineOverride = yes  

Run:

  sudo -H gedit / etc / ssmtp / revaliases  

Введите там:

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

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

Проверьте его, запустив на терминале следующее:

  echo "Тело письма abc" |  mail -s "Subject is xyz" "someusername@gmail.com" ` 
0
ответ дан 13 August 2018 в 17:08
  mail -s "subjet" -a "attchedfile_name" someone@dest_email.com  

или

  cat "afile" |  mail -s "subject" someone@dest_email.com  
8
ответ дан 13 August 2018 в 17:08
  • 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

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

Чтобы проверить местный адрес электронной почты:

  echo message |  mail username @ localhost  
5
ответ дан 13 August 2018 в 17:08
  apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail  

использование:

  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 предложит вам пароль ... и отобразит его на экране , но, по крайней мере, это не будет в истории вашей командной строки.

44
ответ дан 13 August 2018 в 17:08
  • 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'} ... & quot;) также может быть неудачно с первого раза, вы должны получить электронное письмо на эту учетную запись, предлагая вам «включить менее безопасные приложения»). то он может работать. – rogerdpack 26 April 2017 в 00:34
  sudo apt-get install sharutils mailutils uuencode имя_файла filename |  mail user@example.com  

где имя_файла одно и то же: он обозначает входной файл и удаленный файл.

5
ответ дан 13 August 2018 в 17:08

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

  sendmail -t receiver @ example  

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

14
ответ дан 13 August 2018 в 17:08

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

  mail name@mailserver.com -s «Прикрепленный файл» & lt; & lt; EOF Hi ~ |  uuencode $ HOME / filename.txt filename.txt EOF  

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

8
ответ дан 13 August 2018 в 17:08
  • 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

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

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

6
ответ дан 13 August 2018 в 17:08
  • 1
    Мне нравится bsd-mailx для команды -E и cronjobs – meffect 10 May 2015 в 08:46
  1. Установить ssmtp : sudo apt-get install ssmtp
  2. Отредактировать конфигурационный файл ssmtp: gksu gedit /etc/ssmtp/ssmtp.conf
  3. Добавить следующий текст: root=username@gmail.com mailhub = smtp.gmail.com: 465 rewriteDomain = gmail .com AuthUser = имя пользователя AuthPass = пароль FromLineOverride = YES UseTLS = YES
  4. Запустите ssmtp и укажите адрес электронной почты получателя: ssmtp recepient_name@gmail.com
  5. Укажите данные сообщения следующим образом: Кому: recipient_name@gmail.com От: username@gmail.com Тема: Отправлено с терминала! Ваш контент идет здесь. Lorem ipsum dolor sit amet, consectetur adipisicing. (Обратите внимание на пустое пространство между объектом и телом.)
  6. Нажмите Ctrl + D, чтобы отправить.

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

  ssmtp recipient_name@gmail.com & lt;  filename.txt  
142
ответ дан 13 August 2018 в 17:08
  • 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

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

  sudo apt-get install postfix  

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

  echo "test  сообщение "|  mailx -s 'test subject' myemail@mydomain.com  

HELP

16
ответ дан 13 August 2018 в 17:08
  • 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

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

  apt-get install mpack  

use:

  mpack -s "файл, который вы хотите" ./data.pdf loser@supergoober.cn  
21
ответ дан 13 August 2018 в 17:08

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

  marco @ dagobah: ~ $ mail -v marco.ceppi.use@gmail.com Тема: Hello World!  Это письмо для меня.  Надеюсь все хорошо.  ,  Cc:  

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

84
ответ дан 13 August 2018 в 17:08
  • 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

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

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

  hanoo @ hp_laptop%  nc 127.0.0.1 25 220 hp_laptop.localdomain ESMTP Postfix EHLO man 250 hp_laptop.localdomain ПОЧТА ОТ: & lt; netcat@postfix.com>  250 2.1.0 Ok RCPT TO: & lt; target@host.com>  250 2.1.5. Ок. Данные 354 Конечные данные с & lt; CR & gt; & lt; LF & lt; CR & gt; & lt; LF & gt;  Это тело моей почты, это вторая строка ....  250 2.0.0 Ok: поставлен в очередь как 9C12E7F404  
8
ответ дан 15 August 2018 в 23:45
  • 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

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

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