Komut satırından posta nasıl gönderilir?


Yanıtlar:


36

Mutt E-posta İstemcisi'ni yüklemeyi deneyin . Diğer seçenek gnus ile emacs kullanıyor . Diğer seçenekler de mevcuttur ... IMHO, sorularınızda daha fazla ayrıntı kullanmalısınız ya da alacağınız sorunuza birkaç farklı cevap kullanmalısınız :-)


2
Herhangi bir konfigürasyon gerektirmediğinden ve kullanıcı dostu olduğu için bunu kabul etti.
Olivier Lalonde

21
Bekle. mutt - kullanıcı dostu? Bugün okuduğum en çılgınca tek gömlek :)
Stann

155
  1. Ssmtp'yi kurun Ssmtp'yi yükleyin:

    sudo apt-get install ssmtp
    
  2. Ssmtp config dosyasını düzenleyin:

    gksu gedit /etc/ssmtp/ssmtp.conf
    
  3. Aşağıdaki metni ekleyin:

    root=username@gmail.com
    mailhub=smtp.gmail.com:465
    rewriteDomain=gmail.com
    AuthUser=username
    AuthPass=password
    FromLineOverride=YES
    UseTLS=YES
    
  4. Ssmtp'yi çalıştırın ve alıcı e-posta adresini girin:

    ssmtp recepient_name@gmail.com
    
  5. Mesaj ayrıntılarını aşağıdaki gibi sağlayın:

    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. Göndermek için Ctrl+ tuşuna basın D.


Ayrıca metni dosyaya yerleştirip aşağıdaki gibi gönderebilirsiniz:

ssmtp recipient_name@gmail.com < filename.txt

29
E-posta şifremi bilgisayardaki bir dosyada bıraktığımda garip hissettiriyor. Bu güvenli mi?
oadams

2
@oadams çok güvenli değil. Riskinizi azaltmak için 2 adımlı doğrulama kullanın veya İSS'niz gibi bir şifre gerektirmeyen bir posta ağ geçidi kullanın.
itsadok

5
Ssmtp'yi postfix yüklü olan bir sunucuya kurmayın. Postfix kaldırılacak. Bunun yerine, sadece postfix user@example.com <dosya.txt kullanın, bunlar postfix veya ssmtp ile çalışacaktır.
Alistair Buxton,

2
Burada paylaşmak istediğim başka bir garip şey, uzun / karmaşık bir şifrem olduğunda benim için işe yaramadı, ama basit, şifreli, garip ama gerçek bir şifreyle değiştirdiğimde çalıştı. Ben de başkasından aynı duydum ama benim için sürpriz, şifreyi basitleştirilmiş en kısa sürede posta ve göndermek için başarısız denemeden çok sonra denedim, sadece çalıştı;)
Rajat Gupta

Gmail sunucunuzun erişmesine izin vermiyorsa, komut satırı tarayıcısıyla sunucuda Gmail’e giriş yapın. askubuntu.com/questions/460022/using-terminal-as-a-web-browser
Sanghyun Lee

87

Çoğu zaman mailkomut satırından kullanabildiğiniz bir SMTP sunucusunu yapılandırmanız gerekmez (zaten yoksa, birlikte yükleyin sudo apt-get install mailutils). (Veya sendmail'in yapılandırıldığı bir sunucudaysanız, vb.)

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

Hope all is well.
.
Cc: 

İletileri tek bir .satırda sonlandırıyorsunuz . O zaman mailsizden Cc:bilgi girmenizi isteyecek (ya da boş bırakacaksınız) ve maildaha sonra ne yapmaya çalıştığı hakkında ek bilgiler yazmanın yanı sıra, posta sunucusundan veri bağlama, aktarma ve alma işlemlerinin ayrıntılarını da verecektir.


28
Temiz bir Ubuntu 10.04 kurulumunda mevcut olmadığından "sudo apt-get install mailutils" ifadesini ekleyeceğim. Ayrıca, mesajı a ile sonlandırmak. tek bir hat üzerinde işe yaramadı. Bunun yerine "Ctrl-D" yapmak zorunda kaldım. Son olarak, mesaj geçmedi!
Olivier Lalonde

7
@OlivierLalonde sudo apt-get install mailutils, postfixbazı insanlar için biraz fazla kilolu olabilecek bir SMTP sunucusu kuracak .
vaab

5
mailutils ayrıca mysql'yi kuracak!
chmike

17
-v seçenek değildir posta 2.99.98 yükleme benim de, aynı zamanda çıkmak için Ctrl + D kullanmak zorunda
markmnl

2
Lütfen bu soruyu güncelleyin, güncel değil.
Blauhirn

47
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail

kullanımı:

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 

Parolanızı komut satırında belirtmek istemiyorsanız (genellikle yapılacak iyi bir şey değil), bu parametreyi atlarsınız ve sendemail sizden parola ister ... ekranda görüntüler ve en azından ekranda gösterecektir. komut satırı geçmişinde olmayacak.


sendmailKesin olarak çok kullanışlı bir GMail hesabından posta gönderme . Teşekkür ederim.
Mark Tomlin

Şifreyi yankılamamak için burada bir yama bulun
Arun

Bağlantı noktasını belirtmek zorunda kaldım -s smtp.gmail.com:587.
Joe Mornin,

5
komut satırına kaydetmemek için komut satırından önce boşluk ekleyin
guhur 18

bash ekranında göstermemek için başka bir yol: şifreyi bir dosyaya kaydedin, sonra dosyadan ortam değişkenine, ex: pass=$(cat my_password); sendemail... -xp $name ...ve tabii ki programlı olarak çağırıyorsanız benzer bir şey yapabilirsiniz, ex: ruby system("sendemail ... -xp #{File.read 'my_password'}...")de başarısız olabilir ilk kez, o hesaba "daha az güvenli uygulamaları etkinleştir" i öneren bir e-posta almanız gerekir.
rogerdpack

23

mpack dosya eklerini göndermenin mükemmel komut satırı yoludur.

apt-get install mpack

kullanımı:

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn

20

Posta göndermek için bir MTA'ya ihtiyacınız var. Bunun için postfix kullanın:

sudo apt-get install postfix

E-posta göndermek için:

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

YARDIM


Ayrıca, mailx için mailutils kurmanız gerekiyor, değil mi?
Nick,

4
Keşke bu kadar basit olsaydı, ama çok özel biri değilseniz, bu işe yaramayacak. ISS'lerin% 99,9999'u özel postfix sunuculardaki postaları görmezden gelecektir, çünkü 10'dan 999999'u spam gönderenlerdir.
Cerin

bu benim için işe yaramadı, bu mailutilsterminale girdiğimde kurmak istedi
Mostafiz Rahman

Devam edin ve mailutils'i kurun. IIRC postfixine ihtiyacınız yok.
18'de

@Cerin haklı. Yine de bir cron işi için çok basit bir posta işlevselliğine ihtiyacım vardı. Çözüm olarak, bir gmail hesabıyla alıyorsanız, e-posta için bir filtre oluşturabilirsiniz (anahtar kelimeler veya adres üzerinden) ve gmail gönderilmesine izin verir.
Carrie Kendall

15

Paketi kurun ve sendmailsonra yazın

sendmail -t receiver@example 

sonra e-postanızı yazıp ardından Ctrl + D tuşlarına basın


10
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

veya

cat "afile" | mail -s "subject" someone@dest_email.com

sadece kolay test için eklemek için: echo "Merhaba dünya!" | mail -s "Merhaba" mail@example.org
Bohne

2
Birisi posta komutuna sahip değilse, sadece çalıştırın: sudo apt-get install mailutilsUbuntu / Debian'da veya yum install mailxCentOS / Redhat'ta
Giovanni Benussi

9

TelNet veya NetCat ile komut satırından bir e-posta gönderebilirsiniz .

Burada her şey açıklanmaktadır .

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

2
Bu yöntemi kullanırken SSL kullanmak biraz zor;)
iX3

1
@ iX3 kullanmanız yeterli swaks; SSL / TLS ile de
iyisiniz

Veyaopenssl s_client -starttls smtp ...
Raman

7

Eğer bir sistemden e-posta göndermek için çalışırsanız, whitch bir kendi e-posta-sunucu (yani masaüstü sistemi) çalışmıyor, gibi bir şey yüklemeniz gerekir nullmailer veya ESMTP "gerçek" postaya ileri yerel posta sunucusu.

Komut satırı araçları olarak mail veya mailx'i kurabilirsiniz (mailutils, heirloom-mailx veya bsd-mailx paketlerini kullanabilirsiniz). Eklere ihtiyacınız varsa, biabam'ı deneyin.


1
-E komutu ve cronjobs için bsd-mailx'i seviyorum
10:15 te

6

Hiç denemedim ama mailposta gönderebilecek bir komut var. Erkek postasına bakınız .

Yerel e-postayı test etmek için:

echo message | mail username@localhost

6
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com

nerede filenameaynıdır: giriş dosyası ve uzak dosya anlamına gelir.


sudo apt-get install sharutilsiçinuuencode
Janus Troelsen 19:12

1
mailutils mysql'i yükler! oO
chmike

3

Bunu deneyebilirsiniz:

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

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

EOF

GNU Mailutils ile çalışır , daha fazla bilgi için web sitesini kontrol edin.


2

Çalıştır :

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

Orada eklenmesi gerekiyor:

# 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

Çalıştır :

sudo -H gedit /etc/ssmtp/revaliases

Oraya girin:

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

Gmail'de "daha az güvenli uygulamaları" etkinleştirin :
https://support.google.com/accounts/answer/6010255?hl=tr

Terminalde aşağıdakileri çalıştırarak test edin:

echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`

1

Yukarıdakilere ek olarak hala bu hatayı alıyordum

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)

ÇÖZÜM: mevcut şifre doğru olsa bile bir gmail şifresi sıfırlama yapın ... muhtemelen Google güvenlik önlemi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.