Bagaimana saya bisa membuat crontab mengirimi saya email dengan hasil pekerjaannya? Saya memiliki [email protected]
pekerjaan di atas, tetapi tidak berhasil.
Saya tahu saya perlu menggunakan sesuatu seperti Postfix atau Sendmail tetapi untuk kehidupan saya, saya tidak dapat menemukan cara untuk mencapai ini. Saya telah mencari dan mencari panduan sederhana tentang pengaturan Postfix tetapi mereka semua sangat rumit dan mengharapkan Anda membuat seluruh server untuk mengirim dan menerima email dan mengetahui semua persyaratan (seperti, apa itu nama domain) untuk email keluar?).
Yang ingin saya lakukan adalah memiliki email crontab saya. Mengapa ini sangat sulit ??
Informasi tambahan:
File crontab saya terlihat seperti ini:
[email protected]
1 0 * * * ~/Desktop/toskymesh.sh
59 6 * * * ~/Desktop/tooptus.sh
0 3 * * * snapraid sync
Info Tambahan Lainnya:
Output dari ps -ef | grep '[s]endmail'
root 6840 1370 0 10:26 ? 00:00:00 sendmail: MTA: accepting connections
Saya tahu pasti cron berfungsi, tetapi saya sedang menguji perintah email dengan cara echo Test | mail -s Test [email protected]
apapun.
sendmail setup
. Semoga berhasil!mail
. Di salah satu dari mereka, tertulis ini:Diagnostic-Code: SMTP; 553 5.7.1 [BL21] Connections will not be accepted from [MyIPRedacted], because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html
Apakah ini berarti perintahnya berfungsi tetapi Yahoo memblokir surat?http://webmasters.stackexchange.com
? Mereka mungkin dapat membantu Anda lebih baik atau lebih baik lagi dichat.stackexchange.com/rooms/524/webmasters
mana semua pertanyaan tampaknya disambut (hm .. Anda mungkin perlu lebih banyak perwakilan untuk masuk, apakah Anda berada di situs pertukaran stackex lainnya?) Semoga beruntung.Jawaban:
Akhirnya saya pakai
sSMTP
. Jauh, jauh lebih sederhana daripada salah satuPostfix
atausendmail
dan melakukan pekerjaan dengan indah.Untuk referensi di masa mendatang, inilah cara menggunakan sSMTP dengan Yahoo Mail (jangan khawatir, ini jauh lebih kompleks daripada tampilannya):
Gunakan Synaptic untuk mengunduh ssmtp. Atau Anda bisa lari
sudo apt-get install ssmtp
.Buka file config di /etc/ssmtp/ssmtp.conf.
Buat konfigurasi seperti ini:
Buat file cert.pem dengan OpenSSL. Saya menggunakan perintah
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 9999 -nodes
(info lebih lanjut di sini ). Anda dapat menempelkan file di mana saja, tapi saya baru saja membuangnya di ~ /. Di mana pun Anda meletakkannya, pastikan Anda mengarahkanTLS_CA_File=
baris di ssmtp.conf ke lokasi yang benar.Buka file
/etc/ssmtp/revaliases
dan tambahkan baris[yourPCUsername]:[[email protected]]:smtp.mail.yahoo.com:587
. Jika Anda menjalankan sebagai root, saya pikir Anda perlu menambahkan baris lain menggantikan nama Anda dengan 'root'.Itu dia, kamu baik-baik saja! Untuk menguji, cara termudah (IMO) adalah membuat file dengan yang berikut di dalamnya:
sendmail -V
- itu seharusnya mengatakan 'sSMTP'.cat fileWithEmailInIt.txt | sendmail -i -t
, lalu tunggu beberapa detik (10-30) dan periksa email Anda!Jelas, ganti
[[email protected]]
dengan email Anda (tanpa tanda kurung) dan[yourRealYahooPassword]
dengan kata sandi Yahoo Mail Anda (sekali lagi, tanpa tanda kurung).Catatan tambahan: Jika Anda memiliki masalah dengan Gmail, coba opsi 1 dari jawaban ini (terima kasih kepada Ben Creasy untuk info itu).
sumber
hostname
seperti yang ditunjukkan saat ini). Jawaban ini menunjukkan bahwa Anda dapat menggunakan sertifikat server default, tetapi saya menemukan bahwa saya tidak memerlukanTLS_CA_File=
saluran untuk mengirim melalui GMail.Instal Postfix. Ini lebih rumit daripada kebanyakan paket lain tetapi masih tidak rumit .
Pilih "Situs Internet" dan kemudian terima semua defaultnya. Maka kita hanya perlu menghentikan koneksi luar, mengubahnya menjadi " null client ". Jalankan:
sudoedit /etc/postfix/main.cf
dan temukaninet_interfaces
pengaturan (dekat bagian akhir) dan ubah menjadiloopback-only
, seperti:Dan akhirnya restart Postfix with
sudo /etc/init.d/postfix restart
(reload tidak akan dilakukan).Anda sekarang memiliki instalasi Postfix yang tidak akan menyampaikan email untuk mesin luar, ia hanya akan menerima koneksi pada 127.0.0.1 (dan :: 1 untuk IPv6).
Pada catatan terpisah, garis cron Anda mungkin tidak berfungsi karena Anda menggunakan jalur dan jalur non-relatif dengan substitusi Bash di.
sh
Tidak mengerti~
dan mungkin tidak memilikiPATH
set yang tepat . Jadi gantilah dengan (saya hanya menebak jalur sebenarnya):Dan jika skrip Anda perlu dijalankan dari direktori tertentu, pastikan skrip tersebut
cd
masuk ke direktori yang benar. Jangan berasumsi bahwa itucron
akan berada di tempat yang tepat karena kemungkinan tidak akan terjadi.sumber
~/Desktop/
.inet_interfaces = localhost
. loopback-only memberi sayapostfix: fatal: config variable inet_interfaces: host not found: loopback-only
Saya sangat beruntung dengan exim4.
(alpine hanyalah klien email yang saya suka gunakan)
Setelah itu, saya lari
dan ikuti petunjuknya. Halaman ini: https://help.ubuntu.com/community/Exim4 juga sangat membantu. Butuh waktu sekitar 10 menit untuk menjalankannya.
sumber
Dari manual sSMTP: "Itu tidak melakukan aliasing, yang harus dilakukan baik di agen pengguna atau di mailhub. Juga tidak menghormati. Selanjutnya, yang harus dilakukan pada host penerima. Terutama tidak mengirim ke jaringan pipa. "
Jadi, jika Anda ingin menerima semua pesan yang dikirim untuk melakukan rooting pada email ekstenal Anda, adalah ide yang buruk untuk menggunakan sSMTP, karena itu tidak mendukung alias.
Sebagai gantinya, Anda dapat menggunakan postfix pengguna. Itu masih sangat sederhana. Berikut cara menggunakannya dengan gmail sebagai smtp Anda untuk mengirim pesan:
Jenis umum konfigurasi email: Sistem satelit
Nama surat sistem: Nama server surat yang benar-benar memenuhi syarat, misalnya, mail.example.com
Host relai SMTP (kosong untuk tidak ada): [smtp.gmail.com]: 587
Tambahkan ke /etc/postfix/main.cf:
Buat / etc / postfix / sasl / sasl_passwd
Kemudian:
Edit / etc / aliases dan tambahkan:
Terakhir, jalankan:
Sekarang, Anda dapat menguji apakah pengalihan berfungsi:
Semoga ini bisa membantu.
sumber