Bagaimana cara mengirim surat dari baris perintah?

215

Bagaimana cara mengirim surat dari baris perintah?

Olivier Lalonde
sumber
1
ubuntuforums.org/showthread.php?t=780509 dapat membantu Anda.
Pengguna
1
Anda juga bisa menggunakan pinus.
Kaveh
1
Anda juga dapat menginstal msmtp dan mengikuti instruksi yang dijelaskan dalam ArchWiki
Thiago Perrotta
2
Sayang sekali jawaban untuk ini sudah ketinggalan zaman. Ini pertanyaan penting yang bisa menggunakan tutorial yang bagus
6005

Jawaban:

36

Cobalah untuk menginstal Klien Email Mutt . Opsi lainnya adalah menggunakan emacs dengan gnus . Pilihan lain juga tersedia ... IMHO, Anda harus menggunakan lebih banyak detail dalam pertanyaan Anda, atau beberapa jawaban berbeda untuk pertanyaan Anda, Anda akan menerima :-)

crncosta
sumber
2
Diterima yang ini karena tidak memerlukan konfigurasi apa pun dan cukup ramah pengguna.
Olivier Lalonde
21
Tunggu. mutt - user friendly? one-liner paling gila yang pernah saya baca hari ini :)
Stann
155
  1. Pasang ssmtp Instal ssmtp :

    sudo apt-get install ssmtp
    
  2. Edit file konfigurasi ssmtp:

    gksu gedit /etc/ssmtp/ssmtp.conf
    
  3. Tambahkan teks berikut:

    [email protected]
    mailhub=smtp.gmail.com:465
    rewriteDomain=gmail.com
    AuthUser=username
    AuthPass=password
    FromLineOverride=YES
    UseTLS=YES
    
  4. Jalankan ssmtp dan berikan alamat email penerima:

    ssmtp [email protected]
    
  5. Berikan detail pesan sebagai berikut:

    To: [email protected]
    From: [email protected]
    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. Tekan Ctrl+ Duntuk mengirim.


Anda juga dapat memasukkan teks ke dalam file dan mengirimkannya sebagai berikut:

ssmtp [email protected] < filename.txt
Sid
sumber
29
Rasanya aneh meninggalkan kata sandi email saya terekspos di beberapa file di komputer. Apakah ini aman?
oadams
2
@oadams tidak terlalu aman. Gunakan verifikasi 2 langkah untuk menurunkan risiko Anda, atau gunakan gateway email yang tidak memerlukan kata sandi, seperti ISP Anda.
itsadok
5
Jangan menginstal ssmtp di server dengan postfix diinstal. Postfix akan dihapus. Sebagai gantinya, cukup gunakan sendmail [email protected] <file.txt yang akan berfungsi baik dengan postfix atau ssmtp.
Alistair Buxton
2
Hal aneh lain yang ingin saya bagikan di sini adalah, itu tidak berfungsi untuk saya ketika saya memiliki kata sandi yang panjang / rumit tetapi berfungsi ketika saya memodifikasinya menjadi kata sandi yang sederhana, aneh tapi benar. Saya juga mendengar hal yang sama dari orang lain tetapi mencobanya setelah banyak usaha yang gagal untuk mengirim surat & segera setelah saya menyederhanakan kata sandi, saya terkejut, itu hanya berhasil;)
Rajat Gupta
Jika Gmail tidak mengizinkan server Anda untuk mengakses, login ke Gmail di server dengan browser baris perintah. askubuntu.com/questions/460022/using-terminal-as-a-web-browser
Sanghyun Lee
87

Sebagian besar waktu Anda tidak perlu mengkonfigurasi server SMTP yang dapat Anda gunakan maildari commandline (jika belum ada, instal dengan sudo apt-get install mailutils). (Atau jika Anda berada di server tempat sendmail dikonfigurasikan, dll.)

marco@dagobah:~$ mail -v [email protected]
Subject: Hello World!
This is an email to myself.

Hope all is well.
.
Cc: 

Anda mengakhiri pesan dengan satu .saluran. Saat itulah mailakan meminta Anda untuk Cc:memasukkan informasi (atau biarkan kosong) dan mailkemudian akan mencetak informasi tambahan tentang apa yang berusaha dilakukan, serta merinci pemrosesan menghubungkan, mengirim, dan menerima data dari server mail.

Marco Ceppi
sumber
28
Saya akan menambahkan jawaban untuk menyertakan "sudo apt-get install mailutils" karena tidak ada pada instalasi Ubuntu 10.04 yang bersih. Juga, mengakhiri pesan dengan a. pada satu baris tidak berfungsi. Saya harus "Ctrl-D" sebagai gantinya. Terakhir, pesannya tidak masuk!
Olivier Lalonde
7
@OlivierLalonde sudo apt-get install mailutilsakan menginstal server SMTP postfix, yang mungkin sedikit kelebihan berat bagi beberapa orang.
vaab
5
mailutils juga akan menginstal mysql!
chmike
17
-v pilihan tidak dalam pemasangan mail saya 2.99.98, juga harus menggunakan Ctrl + D untuk mengakhiri
markmnl
2
Harap perbarui pertanyaan ini, ini sudah usang.
phil294
47
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail

pemakaian:

sendemail -f [email protected] -t [email protected] -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu [email protected] -xp gmailpassword 

Jika Anda tidak ingin menentukan kata sandi di baris perintah (umumnya bukan hal yang baik untuk dilakukan), Anda dapat menghilangkan parameter itu dan mengirim email akan meminta kata sandi ... dan menampilkannya di layar, tetapi setidaknya itu tidak akan ada dalam sejarah baris perintah Anda.

jet
sumber
Mengirim surat dari akun GMail menggunakan sendmailkepastian yang sangat praktis. Terima kasih.
Mark Tomlin
Temukan tambalan di sini untuk tidak mengulangi kata sandi.
Arun
Saya harus menentukan port dengan -s smtp.gmail.com:587.
Joe Mornin
5
tambahkan spasi sebelum baris perintah untuk tidak menyimpannya dalam sejarah baris perintah
guhur
cara lain untuk tidak menampilkannya di layar bash: menyimpan kata sandi ke file, kemudian dari variabel file ke lingkungan, mis: pass=$(cat my_password); sendemail... -xp $name ...dan tentu saja jika Anda memanggilnya secara terprogram Anda dapat melakukan sesuatu yang serupa, mis: ruby system("sendemail ... -xp #{File.read 'my_password'}...")juga mungkin gagal pertama kali, Anda harus mendapatkan email ke akun itu yang menyarankan Anda "mengaktifkan aplikasi yang kurang aman" maka itu bisa berfungsi.
rogerdpack
23

mpack adalah cara commandline yang sangat baik untuk mengirim lampiran file.

apt-get install mpack

pemakaian:

mpack -s "file you wanted" ./data.pdf [email protected]
BozoJoe
sumber
20

Anda memerlukan MTA untuk mengirim email. Untuk ini, gunakan postfix:

sudo apt-get install postfix

Untuk mengirim email:

echo "test message" | mailx -s 'test subject' [email protected]

TOLONG

Satu Nol
sumber
Anda juga perlu menginstal mailutils untuk mailx, bukan?
Nick
4
Saya berharap itu benar-benar sesederhana ini, tetapi kecuali Anda adalah seseorang yang sangat istimewa, ini tidak akan berhasil. 99,9999% ISP akan mengabaikan email dari server postfix pribadi, karena 9,99999 kali dari 10 mereka adalah spammer.
Cerin
ini tidak berhasil untuk saya, ia meminta untuk menginstal mailutilsketika saya memasukkan ini ke terminal
Mostafiz Rahman
Silakan dan instal mailutils. Anda tidak perlu postfix IIRC.
uav
@Cerin benar. Saya membutuhkan fungsionalitas pengiriman surat yang sangat sederhana untuk pekerjaan cron. Sebagai solusinya, jika Anda menerima melalui akun gmail, Anda dapat mengatur filter untuk email (melalui kata kunci atau dari alamat) dan gmail akan membiarkannya dikirim.
Carrie Kendall
15

Instal paket sendmailkemudian ketik

sendmail -t receiver@example 

kemudian tulis email Anda lalu tekan Ctrl + D

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

atau

cat "afile" | mail -s "subject" someone@dest_email.com
pengguna142345
sumber
hanya untuk menambah pengujian mudah: gema "Halo dunia!" | mail -s "Hello" [email protected]
Bohne
2
Jika seseorang tidak memiliki perintah surat, jalankan saja: sudo apt-get install mailutilsdi Ubuntu / Debian atau yum install mailxdi CentOS / Redhat
Giovanni Benussi
9

Anda dapat mengirim email dari baris perintah dengan TelNet atau NetCat .

Semuanya dijelaskan di sini .

hanoo@hp_laptop% nc 127.0.0.1 25
220 hp_laptop.localdomain ESMTP Postfix
EHLO man
250 hp_laptop.localdomain
MAIL FROM: <[email protected]>
250 2.1.0 Ok
RCPT TO: <[email protected]>
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
sumber
2
Agak sulit untuk menggunakan SSL saat menggunakan metode ini;)
iX3
1
@ iX3 cukup gunakan swaksdan Anda baik-baik saja dengan SSL / TLS, juga ;-)
Germar
Atauopenssl s_client -starttls smtp ...
Raman
7

Jika Anda mencoba mengirim e-mail dari suatu sistem, whitch tidak menjalankan server e-mail sendiri (yaitu sistem desktop), Anda perlu menginstal sesuatu seperti nullmailer atau esmtp , yang meneruskan surat lokal Anda ke surat "nyata" server.

Sebagai alat baris perintah Anda dapat menginstal mail atau mailx (paket mailutils, heirloom-mailx atau bsd-mailx). Jika Anda membutuhkan lampiran, cobalah biabam.

ddeimeke
sumber
1
Saya suka bsd-mailx untuk perintah -E dan cronjobs
meffect
6

Saya belum pernah mencobanya tetapi ada mailperintah yang bisa mengirim email. Lihat man mail .

Untuk menguji email lokal:

echo message | mail username@localhost
dv3500ea
sumber
6
sudo apt-get install sharutils mailutils
uuencode filename filename | mail [email protected]

di mana filenamesama: itu singkatan dari file input dan file jarak jauh.

nisse
sumber
sudo apt-get install sharutilsuntukuuencode
Janus Troelsen
1
mailutils menginstal mysql! oO
chmike
3

Anda dapat mencoba ini:

mail [email protected] -s "Attached file" <<EOF                 
Hi

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

EOF

Ini bekerja dengan GNU Mailutils , periksa situs web untuk informasi lebih lanjut.

Sharad
sumber
2

Jalankan :

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

Berikut ini perlu ditambahkan di sana:

# The user that gets all the mails (UID < 1000, usually the admin)
[email protected]

# 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

Jalankan :

sudo -H gedit /etc/ssmtp/revaliases

Masukkan di sana:

root:[email protected]:smtp.gmail.com:587

Aktifkan "aplikasi kurang aman" di Gmail:
https://support.google.com/accounts/answer/6010255?hl=id

Uji dengan menjalankan yang berikut ini di terminal:

echo "Body of mail is abc" | mail -s "Subject is xyz" "[email protected]"`
Aquarius_Girl
sumber
1

Selain di atas saya masih mendapatkan kesalahan ini

echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv  [email protected]
[<-] 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)

SOLUSI: lakukan reset kata sandi gmail bahkan ketika kata sandi saat ini benar ... mungkin tindakan pencegahan keamanan Google

Scott Stensland
sumber