Bagaimana cara mengirim email dari baris perintah atau skrip? Saya ingin dapat menjalankan skrip secara terprogram dengan mengirimkan penerima dan pesan.
Bagaimana cara mengirim email dari baris perintah atau skrip? Saya ingin dapat menjalankan skrip secara terprogram dengan mengirimkan penerima dan pesan.
Jawaban:
mail -s subject someone@example.com
ketik pesan Anda, tekan Ctrl+D
untuk menyelesaikan
echo This will be the body of the email | mail -s "This is the Subject" destination@example.com
Ada dua program yang saya ketahui yang dengan mudah akan memungkinkan Anda untuk mengkonfigurasi Mac Anda untuk mengirim email dari baris perintah.
Saya telah menulis HOWTO untuk mereka berdua:
Dari keduanya, saya sarankan msmtp
.
Konfigurasi cukup rumit sehingga saya tidak yakin apakah saya harus meniru semua langkah di sini, tetapi saya akan menyebutkan bahwa jika Anda menggunakan Homebrew, Anda dapat menginstal msmtp menggunakan
brew install msmtp --with-macosx-keyring
Maka sisanya hanyalah masalah pengaturan file konfigurasi terkait
Yang pertama adalah /usr/local/etc/msmtprc
# Begin msmtprc
# Set default values for all following accounts.
defaults
tls on
logfile ~/.msmtp.log
# A first gmail address
account example@gmail.com
host smtp.gmail.com
port 587
protocol smtp
auth on
from example@gmail.com
user example@gmail.com
tls on
tls_starttls on
# this next line is crucial: you have to point to the correct security certificate for GMail.
# If this doesn't work, check the mstmp documentation
# at http://msmtp.sourceforge.net/documentation.html for help
#
# This next line should all be on one long line:
tls_trust_file /path/to/Thawte Roots/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
# Set a default account
# You need to set a default account for Mail
account default : example@gmail.com
# end msmtprc
Perhatikan bahwa tls_trust_file
baris harus mengarah ke mana pun Anda mengunduh dan menginstal sertifikat dari https://www.thawte.com/roots/index.html .
Saya memasukkan milik saya ~/Dropbox/Thawte Roots
sehingga saya dapat memilikinya di semua Mac saya.
Maka Anda perlu ~/.mailrc
file untuk mengatakan di mana biner msmtp berada. Jika Anda menggunakannya brew
maka /usr/local/bin/msmtp
file akan terlihat seperti ini:
set sendmail="/usr/local/bin/msmtp"
Langkah terakhir tetapi penting adalah memastikan bahwa Keychain Anda memiliki informasi persis dalam format yang diharapkan oleh msmtp:
Saya pikir itu mencakup sebagian besar detail. Lihat http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/ jika Anda ingin beberapa hal yang lebih spesifik.
example@gmail.com
ke alamat email Gmail atau Google Apps Anda.
~/.msmtprc
Cara paling dasar untuk mengirim surat adalah melalui sesi telnet dengan server smtp dari penyedia / jaringan Anda. Setelah Anda menghubungi server dan setelah setiap perintah, server akan menjawab jika menerima perintah dengan sesuatu seperti "250 OK", atau jika tidak dengan pesan kesalahan.
Semua detail dapat ditemukan di RFC2821 - Protokol Transfer Surat Sederhana, Google untuk itu. Cara dasar ini bagus untuk menguji mengapa ada yang salah mengirim surat, tapi saya pikir itu cukup rumit untuk skrip itu bukti lengkap.
Pertama-tama dapatkan antarmuka baris perintah di komputer Anda, dengan memulai Terminal. Kemudian lanjutkan dengan perintah berikut, satu demi satu.
Buka sesi telnet ke port 25 dari server smtp penyedia / jaringan Anda
telnet name_or_ip_of_smtp_server 25
say hello plus internetname dari penyedia / jaringan Anda, seperti abc.com
EHLO name_of_your_network
a from = alamat pengirim diperlukan, <dan> adalah bagian dari perintah
MAIL FROM:<your_email_adress>
berikan satu atau lebih tujuan, <dan> adalah bagian dari perintah
RCPT TO:<destination_email_address>
RCPT TO:<second_destination_email_address>
RCPT TO:<etc_destination_email_address>
beri tahu server Anda ingin mulai mengirim data
DATA
sekarang server harus menjawab Anda dapat mulai mengirim surat Anda dan masuk ke mode data
your data
more data
etc
sekarang selesaikan data dengan titik karena hanya char pada baris
.
server kembali ke mode-perintah sehingga Anda dapat keluar
QUIT
Ini bekerja untuk saya, itu ditulis dengan Lion dalam pikiran tetapi bekerja untuk Mountain Lion. Btw ini menggunakan Gmail jadi jika Anda tidak ...
Anda tidak perlu mengunduh apa pun! (cukup siapkan akun gmail)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/
Konfigurasikan Postfix untuk file Edit SMTP Gmail /etc/postfix/main.cf
sudo vim /etc/postfix/main.cf
dan tambahkan berikut ini di bawah relayhosts yang dikomentari: -
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_sasl_mechanism_filter = plain
Hasilkan sasl_password jika belum ada
sudo vim /etc/postfix/sasl_passwd
dan masukkan yang berikut ini: -
[smtp.gmail.com]:587 username@gmail.com:password
Jalankan perintah berikut
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master
Dan Anda selesai ....
Sekarang, Anda harus dapat mengirim email dari dalam baris perintah misalnya untuk mengirim isi direktori sebagai pohon ke alamat email
tree /var/www/somefolder | mail -s "contents" your@yourdomain.com
mtcmail adalah pilihan lain: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Abaikan teks tambahan ini. Ditambahkan karena: badan harus setidaknya 30 karakter; Anda memasukkan 27.]
Karena berbasis Unix, Anda dapat menggunakan perintah sendmail .