Bagaimana surat sebenarnya dikirim ketika saya menggunakan perintah "surat" Linux?

17

Akun email apa yang digunakan untuk mengirim email saat menggunakan mailperintah dari terminal linux seperti pada:

echo "Body of email" | mail -s "Subject" [email protected]

Jika email tidak terkirim, apakah orang perlu menentukan nama pengguna dan kata sandi dari alamat email pengirim? Semua mailtutorial yang saya baca tidak menyebutkan apa pun tentang alamat pengirim.

Sunting: Jadi jika saya menerima pesan kesalahan dengan efek "Mailing to remote domains tidak didukung", apakah ini berarti ISP saya telah memblokir pengiriman email? Apakah ada cara untuk mengatasi ini? Terima kasih.

user001
sumber

Jawaban:

12

Akun email apa yang digunakan untuk mengirim email saat menggunakan perintah email dari terminal linux seperti pada:

Dalam konfigurasi default, ini adalah akun yang sama dengan yang Anda gunakan untuk masuk. Komputer Anda memiliki program server surat (MTA) yang diinstal; biasanya Postfix atau Exim4, kadang-kadang Sendmail atau qmail.

Alamat email dari akun ini adalah atau , tempat FQDN dapat diperoleh . Namun, saat ini Anda tidak dapat menerima surat ke akun ini, karena MTA dikonfigurasikan untuk "surat lokal" (seperti pesan kesalahan di bawah ini) dan tidak akan menerima pesan dari luar.your-login@hostnameyour-login@fqdnhostname -f

Sunting: Jadi jika saya menerima pesan kesalahan dengan efek "Mailing to remote domains tidak didukung", apakah ini berarti ISP saya telah memblokir pengiriman email? Apakah ada cara untuk mengatasi ini?

Tidak; pesan kesalahan ini dikembalikan oleh komputer Anda sendiri. Server email dikonfigurasikan untuk hanya mentransfer surat lokal - dari satu pengguna ke pengguna lain (paling umum, dari daemon cron jika cronjob gagal). Biasanya pesan ini pergi ke dan dapat dibaca menggunakan , , , atau program serupa. (IIRC, Thunderbird memiliki kemampuan untuk mengimpor gulungan surat lokal juga.)/var/mail/loginmailmuttre-alpine

Tidak sulit untuk mengkonfigurasi ulang server surat untuk mengirim dan menerima surat ke / dari situs lain; tergantung pada MTA yang diinstal dan pada distribusi Linux, bahkan satu perintah saja mungkin cukup: misalnya, dpkg-reconfigure postfixjika sistem Debian dengan Postfix.

Namun, saya menduga Anda menggunakan ini di komputer pribadi, jadi lebih baik menggunakan akun email eksternal sebagai gantinya - misalnya, alamat Gmail Anda jika ada. Cari tahu MTA mana yang diinstal (di Ubuntu / Debian, dpkg -S /usr/sbin/sendmailakan memberi tahu Anda), lalu google untuk " program-name relay gmail" tutorial.

Atau, instal MTA yang dirancang khusus untuk menyampaikan; msmtpdan esmtpmerupakan pilihan yang baik dan mudah dikonfigurasi.

pengguna1686
sumber
Terima kasih atas semua bantuannya. Perintah pastebin yang Anda sarankan akhirnya memenuhi kebutuhan saya. Saya akan bekerja mengatur smarthost untuk pengiriman surat.
user001
4

Contohnya nama akun dan nama host dari pengguna pengirim root@myserver. Itu belum tentu kotak surat aktual yang dapat menerima email dari luar.

Daniel Beck
sumber
2
@ user001 Apakah ini membantu?
Daniel Beck
2
@ user001: Dalam kasus tersebut, Anda mungkin melihat pada pastebins , beberapa di antaranya mudah untuk digunakan dari baris perintah. Misalnya curl -Fsprunge=\<- http://sprunge.us < myfile,.
user1686
1
@ user001: Apakah Anda exim4menjalankan daemon? Apakah sudo mailqdaftar pesan? Sudahkah Anda memeriksa log dari server pengirim ( /var/log/exim4/mainlog) dan penerima (jika mungkin)?
user1686
1
@ user001: Bisa jadi ISP Anda memblokir koneksi. Ini sangat umum pada koneksi rumah - semuanya ke port 25 hilang begitu saja, untuk mengurangi jumlah besar spam yang dikirim oleh PC yang terinfeksi. (Anda masih dapat mengkonfigurasi relaying , yang menggunakan port dan otentikasi SMTP yang berbeda.)
user1686
1
@ user001: Relay terjadi melalui server email lain (kadang-kadang disebut "smarthost"). Admin jaringan Anda mungkin membantu dengan ini, jika akademi memiliki domain email sendiri. Jika tidak, Anda dapat mengonfigurasi server untuk dikirim dari Gmail atau kotak surat serupa; tutorial di sini .
user1686
4

Perintah email mengirim email di bawah akun saat ini, yaitu nama pengguna @ domain; namun, biasanya penyedia layanan internet mencegah pengguna menjalankan server surat mereka sendiri (dengan memblokir port terkait) untuk menghindari spam, dan karenanya email Anda tidak terkirim.

Tetapi masalah pengiriman juga bisa terkait dengan konfigurasi mesin Anda.

Sunting: memungkinkan surat untuk mengirim email dari misalnya gmail. Masukkan informasi berikut ke dalam file ~ / .mailrc Anda, yang menyediakan konfigurasi mendasarkan ke email. Namun, pastikan bahwa file ini hanya dapat diakses oleh Anda (menggunakan chmod 600 ~ / .mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set [email protected]
set smtp-auth-password=pass
set [email protected]
}

Dalam hal ini email akan berasal dari "[email protected]".

Karolos
sumber
@ user001: Apakah Anda hanya ingin mengirim email (mis. dari skrip) atau juga menerimanya?
Karolos
Hanya untuk dapat mengirim pesan dari skrip. Terima kasih.
user001
2
Perhatikan bahwa mailrcsintaks ini khusus untuk heirloom-mailx. Beberapa sistem mungkin datang dengan GNU mailutilsatau BSD mailx, keduanya akan mengeluh tentang kesalahan sintaksis. (Jika itu terjadi, saya sarankan menginstal heirloom-mailx- atau bahkan lebih baik, muttatau re-alpine.)
user1686
0

Lihat ini Cara mengirim email dari baris perintah Linux untuk informasi lebih lanjut

Siva Charan
sumber
1
Terima kasih SivaCharan. Itu adalah salah satu tutorial yang sudah saya baca, tetapi tidak menjawab pertanyaan saya tentang alamat dari.
user001