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

185

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

    
задан Olivier Lalonde 12.11.2010 в 21:27
источник

15 ответов

31

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

    
ответ дан crncosta 12.11.2010 в 21:46
источник
134
  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=username
    AuthPass=password
    FromLineOverride=YES
    UseTLS=YES
    
  4. Запустите ssmtp и укажите адрес электронной почты получателя:

    ssmtp recepient_name@gmail.com
    
  5. Укажите данные сообщения следующим образом:

    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.)
    
  6. Нажмите Ctrl + D для отправки.

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

ssmtp recipient_name@gmail.com < filename.txt
    
ответ дан Sid 12.11.2010 в 22:32
80

В большинстве случаев вам не нужно настраивать 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 затем распечатает дополнительную информацию о том, что она пытается сделать, а также детализирует обработку соединений, передачи и получение данных с почтового сервера.

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

    
ответ дан jet 14.11.2010 в 02:48
20

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

apt-get install mpack

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

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn
    
ответ дан BozoJoe 12.11.2010 в 23:47
14

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

sudo apt-get install postfix

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

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

ПОМОЩЬ

    
ответ дан One Zero 10.08.2012 в 17:57
13

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

sendmail -t receiver@example 

затем напишите свой адрес электронной почты затем нажмите Ctrl + D

    
ответ дан MhdSyrwan 03.07.2012 в 19:14
8

Вы можете отправить электронное письмо из командной строки с помощью 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
    
ответ дан hanoo 30.10.2012 в 06:33
7
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

или

cat "afile" | mail -s "subject" someone@dest_email.com
    
ответ дан user142345 21.03.2013 в 20:16
6

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

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

    
ответ дан ddeimeke 12.11.2010 в 22:21
5

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

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

echo message | mail username@localhost
    
ответ дан dv3500ea 12.11.2010 в 21:30
5
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com

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

    
ответ дан nisse 10.01.2012 в 11:14
2

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

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

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

EOF

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

    
ответ дан Sharad 25.04.2012 в 20:19
0

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

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

    
ответ дан Scott Stensland 29.08.2016 в 23:58
0

Run

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

Run

sudo -H gedit /etc/ssmtp/revaliases

Введите:

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

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

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

echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"'
    
ответ дан Aquarius_Girl 27.07.2017 в 10:42