Apa maksud 'mta' disini, apakah ada nama lengkap atau linknya? Sebagai pemula, itulah yang ingin saya ketahui. Karena saya kurang pengalaman untuk melakukan itu.
Zen
5
@Zen MTA adalah singkatan dari Mail transport agent. postfix, sendmail, qmail dll
Francesco Laurita
@Zen untuk sebagian besar, Anda dapat menganggap MTA sebagai server SMTP atau IMAP.
pengguna151841
1
Jika Anda tidak yakin tentang cara menginstal / mengkonfigurasi dan Anda menggunakan Ubuntu: sudo apt-get install mailutilsdan pilih situs Internet: Email dikirim dan diterima langsung menggunakan SMTP. .
pengguna1717828
86
Jika Anda ingin pendekatan yang bersih dan sederhana di bash, dan Anda tidak ingin menggunakan cat, echo, dll, cara paling sederhana akan menjadi:
mail -s "subject here" email@address.com <<<"message"
<<<digunakan untuk mengarahkan input standar. Ini sudah menjadi bagian dari pesta sejak lama.
Hei, ini berhasil dengan baik untukku, terima kasih! Bagaimana saya menentukan beberapa alamat tujuan pengiriman?
E. Owen
1
@ E.Owen Anda dapat menggunakan opsi -t untuk mengirim ke beberapa alamat yang dipisahkan oleh spasi
Jon
25
Jika exim dan ssmtp berjalan, Anda mungkin mengalami masalah. Jadi jika Anda hanya ingin menjalankan MTA sederhana, hanya untuk memiliki klien smtp sederhana untuk mengirim pemberitahuan email untuk desakan, Anda harus membersihkan MTA yang sudah terinstal seperti exim atau postfix terlebih dahulu dan menginstal ulang ssmtp.
Maka cukup mudah, mengkonfigurasi hanya 2 file (revaliases dan ssmtp.conf) - Lihat ssmtp doc -, dan penggunaan di skrip bash atau bourne Anda seperti:
#!/bin/sh
SUBJECT=$1
RECEIVER=$2
TEXT=$3
SERVER_NAME=$HOSTNAME
SENDER=$(whoami)
USER="noreply"[[-z $1 ]]&& SUBJECT="Notification from $SENDER on server $SERVER_NAME"[[-z $2 ]]&& RECEIVER="another_configured_email_address"[[-z $3 ]]&& TEXT="no text content"
MAIL_TXT="Subject: $SUBJECT\nFrom: $SENDER\nTo: $RECEIVER\n\n$TEXT"
echo -e $MAIL_TXT | sendmail -t
exit $?
Tentunya jangan lupa untuk membuka keluaran firewall anda ke port smtp (25).
Di mana saya dapat mengubah nomor port dalam skrip ini? Di server saya port smtp bekerja lebih dari 8181.
manix
Saya tidak akan melakukan ini di shell ini jika tidak, Anda akan terjebak cepat atau lambat. Anda dapat melakukannya di file konfigurasi: Lihat unix.stackexchange.com/a/132731
hornetbzz
1
Mengapa baris baru dicerna jika saya membuat echo $ MAIL_TXT sederhana?
KernelPanic
1
@ Marko: Tolong lihat man echo dengan opsi -e: aktifkan interpretasi pelarian garis miring terbalik
tidak dipilih karena lebih dari satu proses dapat memanggil skrip pada saat yang bersamaan. Ini dapat menyebabkan file tmp rusak / salah. Juga file / tmp tidak ditimpa setiap kali ini digunakan - itu sebenarnya tumbuh dengan setiap email yang berisi semua email sebelumnya di dalamnya. Tidak baik.
Taterhead
1
Tulisan pertama ke / tmp / mailtest adalah penimpaan sehingga akan menghapus apa pun yang sebelumnya ada di sana. Namun, metode ini tidak ideal untuk alasan lain yang telah Anda jelaskan.
Simon
8
Umumnya, Anda ingin menggunakan mailperintah untuk mengirim pesan Anda menggunakan MTA lokal (yang akan mengirimkannya menggunakan SMTP ke tujuan atau hanya meneruskannya ke beberapa server SMTP yang lebih kuat, misalnya, di ISP Anda). Jika Anda tidak memiliki MTA lokal (meskipun agak tidak biasa bagi sistem mirip UNIX untuk menghilangkannya), Anda dapat menggunakan beberapa MTA minimalis seperti ssmtp .
ssmtpcukup mudah untuk dikonfigurasi. Pada dasarnya, Anda hanya perlu menentukan di mana server SMTP penyedia Anda berada:
# The place where the mail goes. The actual machine name is required# no MX records are consulted. Commonly mailhosts are named mail.domain.com# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=mail
Pilihan lain adalah menggunakan salah satu skrip myriads yang langsung terhubung ke server SMTP dan mencoba mengirim pesan di sana, seperti Smtp-Auth-Email-Script , smtp-cli , SendEmail , dll.
Ubah somehost,, someportdan someaccount@somedomainke nilai aktual yang akan Anda gunakan. Tidak ada enkripsi dan otentikasi yang dilakukan dalam contoh ini.
Dan apa yang harus dilakukan jika mailxtidak dipasang?
nalply
2
The mailperintah melakukan itu (yang akan menduga ;-). Buka shell Anda dan enter man mailuntuk mendapatkan halaman manual untuk mailperintah untuk semua opsi yang tersedia.
Saya melakukan itu tetapi tidak ada opsi untuk menentukan server yang akan digunakan
appshare.co
1
Itu adalah bagian dari konfigurasi agen transfer surat lokal Anda, misalnya Sendmail atau Postfix.
DarkDust
2
Anda bahkan tidak membutuhkan MTA. Protokol SMTP cukup sederhana untuk langsung menulisnya ke server SMTP Anda. Anda bahkan dapat berkomunikasi melalui SSL / TLS jika Anda telah menginstal paket OpenSSL. Periksa posting ini: https://33hops.com/send-email-from-bash-shell.html
Di atas adalah contoh tentang cara mengirim email teks / html yang akan berfungsi di luar kotak. Jika Anda ingin menambahkan lampiran, masalahnya bisa menjadi sedikit lebih rumit, Anda perlu menyandikan file biner base64 dan menyematkannya di antara batas-batas. Ini adalah tempat yang baik untuk mulai menyelidiki: http://forums.codeguru.com/showthread.php?418377-Send-Email-w-attachments-using-SMTP
Di linux, utilitas email dapat digunakan untuk mengirim lampiran dengan opsi "-a". Buka halaman manual untuk membaca tentang opsi. Misalnya kode berikut akan mengirimkan lampiran:
mail -s "THIS IS SUBJECT" -a attachment.txt [email protected] <<< "Hai Sobat, Temukan laporan kegagalan."
Selamat datang di SO. Terima kasih telah memposting jawaban. Silakan baca info tentang bagaimana menulis jawaban yang baik dan memodifikasinya. Nikmati SO ;-)
smtp_sasl_security_options yang dalam konfigurasi akan disetel kosong , untuk memastikan bahwa tidak ada opsi keamanan yang tidak kompatibel dengan Gmail yang digunakan.
tambahkan badan surat sesuai keinginan Anda tekan enter lalu tekan ctrl + d untuk penghentian yang tepat
jika tidak berhasil, periksa semua langkah lagi dan periksa apakah Anda mengaktifkan " aplikasi kurang aman" di gmail Anda
kemudian restart postfix jika Anda memodifikasi sesuatu di dalamnya
untuk skrip shell buat file .sh dan tambahkan perintah 6 langkah sebagai kebutuhan Anda
Misalnya hanya untuk sampel
#!/bin/bash
REALVALUE=$(df /| grep /| awk '{ print $5}'| sed 's/%//g')
THRESHOLD=80if["$REALVALUE"-gt "$THRESHOLD"];then
mail -s 'Disk Space Alert' mailid@domainname.com << EOF
Your root partition remaining free space is critically low.Used: $REALVALUE%
EOF
fi
Skrip mengirim email ketika penggunaan disk naik di atas persentase yang ditentukan oleh variabel THRESHOLD (80% di sini).
Bukankah seharusnya nama jawaban ini harus "KIRIM MAIL FROM LINUX KE [email protected] VIA GMAIL"?
Cameron Hudson
1
Anda dapat menggunakan perintah 'email' atau 'emailx'.
(1) $ vim /etc/mail.rc # atau # vim /etc/nail.rc
set from = xxx@xxx.com #set smtp = smtp.exmail.gmail.com #gmail's smtp server set smtp-auth-user = xxx@xxx.com #sender's email addressset smtp-auth-password = xxxxxxx #get from gmail, not your email account passwdset smtp-auth=login
Karena jika tidak dikirim dari akun resmi, email akan masuk ke junk mail list.
(2) $ echo "Tolong ingat untuk menghapus topik ons yang tidak digunakan!" | mail -s "topik limbah" -a a.txt [email protected] #kirim ke pengguna grup '[email protected]'
Jawaban:
Jika server dikonfigurasi dengan baik, misalnya memiliki MTA yang aktif dan berjalan, Anda dapat menggunakan perintah mail.
Misalnya, untuk mengirim konten file, Anda dapat melakukan ini:
man mail
untuk lebih jelasnya.sumber
sudo apt-get install mailutils
dan pilih situs Internet: Email dikirim dan diterima langsung menggunakan SMTP. .Jika Anda ingin pendekatan yang bersih dan sederhana di bash, dan Anda tidak ingin menggunakan
cat
,echo
, dll, cara paling sederhana akan menjadi:<<<
digunakan untuk mengarahkan input standar. Ini sudah menjadi bagian dari pesta sejak lama.sumber
cat << END
...END | mail -s "subject" [email protected]
Jika exim dan ssmtp berjalan, Anda mungkin mengalami masalah. Jadi jika Anda hanya ingin menjalankan MTA sederhana, hanya untuk memiliki klien smtp sederhana untuk mengirim pemberitahuan email untuk desakan, Anda harus membersihkan MTA yang sudah terinstal seperti exim atau postfix terlebih dahulu dan menginstal ulang ssmtp.
Maka cukup mudah, mengkonfigurasi hanya 2 file (revaliases dan ssmtp.conf) - Lihat ssmtp doc -, dan penggunaan di skrip bash atau bourne Anda seperti:
Tentunya jangan lupa untuk membuka keluaran firewall anda ke port smtp (25).
sumber
Opsi lain untuk di skrip bash:
/tmp/mailtest
diganti setiap kali skrip ini digunakan.sumber
Umumnya, Anda ingin menggunakan
mail
perintah untuk mengirim pesan Anda menggunakan MTA lokal (yang akan mengirimkannya menggunakan SMTP ke tujuan atau hanya meneruskannya ke beberapa server SMTP yang lebih kuat, misalnya, di ISP Anda). Jika Anda tidak memiliki MTA lokal (meskipun agak tidak biasa bagi sistem mirip UNIX untuk menghilangkannya), Anda dapat menggunakan beberapa MTA minimalis seperti ssmtp .ssmtp
cukup mudah untuk dikonfigurasi. Pada dasarnya, Anda hanya perlu menentukan di mana server SMTP penyedia Anda berada:Pilihan lain adalah menggunakan salah satu skrip myriads yang langsung terhubung ke server SMTP dan mencoba mengirim pesan di sana, seperti Smtp-Auth-Email-Script , smtp-cli , SendEmail , dll.
sumber
Mengakui Anda ingin menggunakan beberapa server smtp, Anda dapat melakukan:
Ubah
somehost
,,someport
dansomeaccount@somedomain
ke nilai aktual yang akan Anda gunakan. Tidak ada enkripsi dan otentikasi yang dilakukan dalam contoh ini.sumber
mailx
tidak dipasang?The
mail
perintah melakukan itu (yang akan menduga ;-). Buka shell Anda dan enterman mail
untuk mendapatkan halaman manual untukmail
perintah untuk semua opsi yang tersedia.sumber
Anda bahkan tidak membutuhkan MTA. Protokol SMTP cukup sederhana untuk langsung menulisnya ke server SMTP Anda. Anda bahkan dapat berkomunikasi melalui SSL / TLS jika Anda telah menginstal paket OpenSSL. Periksa posting ini: https://33hops.com/send-email-from-bash-shell.html
Di atas adalah contoh tentang cara mengirim email teks / html yang akan berfungsi di luar kotak. Jika Anda ingin menambahkan lampiran, masalahnya bisa menjadi sedikit lebih rumit, Anda perlu menyandikan file biner base64 dan menyematkannya di antara batas-batas. Ini adalah tempat yang baik untuk mulai menyelidiki: http://forums.codeguru.com/showthread.php?418377-Send-Email-w-attachments-using-SMTP
sumber
Di linux, utilitas email dapat digunakan untuk mengirim lampiran dengan opsi "-a". Buka halaman manual untuk membaca tentang opsi. Misalnya kode berikut akan mengirimkan lampiran:
mail -s "THIS IS SUBJECT" -a attachment.txt [email protected] <<< "Hai Sobat, Temukan laporan kegagalan."
sumber
KIRIM MAIL DARI LINUX KE GMAIL
MENGGUNAKAN POSTFIX
1: instal perangkat lunak
Debian dan Ubuntu:
OpenSUSE:
Fedora:
CentOS:
Arch Linux:
FreeBSD:
di configaration pilih dukungan SASL
2. Konfigurasi Gmail
/ etc / postfix. Buat atau edit file kata sandi:
im menggunakan vim kamu dapat menggunakan file editer seperti nano, cat .....
> Ubuntu, Fedora, CentOS, Debian, OpenSUSE, Arch Linux:
Tambahkan ini
di mana pengguna mengganti dengan nama surat dan kata sandi Anda adalah kata sandi gmail Anda
Simpan dan tutup file dan Jadikan hanya dapat diakses oleh root: karena ini adalah konten sensitif yang berisi kata sandi Anda
> FreeBSD:
direktori / usr / local / etc / postfix.
Tambahkan baris:
Simpan dan Jadikan dapat diakses hanya dengan root:
3. Konfigurasi Postfix
file konfigurasi main.cf
6 parameter yang harus kita atur di Postfix
Ubuntu, Arch Linux, Debian:
edit
ubah nilai-nilai berikut:
smtp_sasl_security_options yang dalam konfigurasi akan disetel kosong , untuk memastikan bahwa tidak ada opsi keamanan yang tidak kompatibel dengan Gmail yang digunakan.
Simpan dan tutup
seperti untuk
OpenSUSE:
memodifikasi
itu juga membutuhkan konfigurasi file master.cf
memodifikasi:
seperti dengan menghapus komentar baris ini (hapus #)
Simpan dan tutup
Fedora, CentOS:
memodifikasi
FreeBSD:
memodifikasi:
simpan dan tutup ini
4. Proses File Kata Sandi:
Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux, Debian:
untuk freeBSD
4.1) Mulai ulang postfix
Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux, Debian:
untuk FreeBSD:
Menambahkan
simpan lalu jalankan untuk memulai
5. Aktifkan "Aplikasi yang Kurang Aman" Di Gmail menggunakan bantuan tautan di bawah ini
https://support.google.com/accounts/answer/6010255
6. Kirim Email Tes
tekan enter
tambahkan badan surat sesuai keinginan Anda tekan enter lalu tekan ctrl + d untuk penghentian yang tepat
jika tidak berhasil, periksa semua langkah lagi dan periksa apakah Anda mengaktifkan " aplikasi kurang aman" di gmail Anda
kemudian restart postfix jika Anda memodifikasi sesuatu di dalamnya
untuk skrip shell buat file .sh dan tambahkan perintah 6 langkah sebagai kebutuhan Anda
Misalnya hanya untuk sampel
Skrip mengirim email ketika penggunaan disk naik di atas persentase yang ditentukan oleh variabel THRESHOLD (80% di sini).
sumber
Anda dapat menggunakan perintah 'email' atau 'emailx'.
(1) $ vim /etc/mail.rc # atau # vim /etc/nail.rc
Karena jika tidak dikirim dari akun resmi, email akan masuk ke junk mail list.
(2) $ echo "Tolong ingat untuk menghapus topik ons yang tidak digunakan!" | mail -s "topik limbah" -a a.txt [email protected] #kirim ke pengguna grup '[email protected]'
sumber