Bagaimana cara mengubah bidang "Dari:" untuk email dari Cron?


Jawaban:


13

Saya tidak berpikir Anda dapat mengubah alamat FROM, (seseorang harus menambahkan opsi MAILFROM).

Anda dapat melakukan sesuatu seperti ini untuk mencapai hasil yang serupa:

* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"

Semua output disalurkan ke perintah mail sehingga variabel MAILTO tidak digunakan sama sekali.

Alamat to perlu diatur tetapi Anda mungkin dapat menggunakan variabel $ MAILTO. The - mengatur sisa opsi menjadi opsi sendmail sehingga Anda dapat menggunakan opsi -r dan dan -F.

-s adalah subjeknya

-r adalah alamat balasan

-F adalah nama lengkap pengirim (membuatnya terlihat bagus di klien email)


serverfault.com/a/437319/30697 mungkin seharusnya menjadi jawaban yang Diterima.
lkraav

34

Versi modern dari cron menerima "MAILFROM = ..." dalam format crontab. Saya sarankan Anda mencoba "man 5 crontab". Jika menyebutkan MAILFROM, versi Anda harus mendukungnya. Ungkapan yang harus dicari adalah menjelang akhir paragraf yang membahas MAILTO, dan harus seperti ini:

If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.


6
Di mana "modern" artinya apa? Ini tidak didukung oleh versi terbaru dari cron di Debian tidak stabil (3.0pl1-124) dari apa yang dapat saya lihat di changelog atau dokumentasi.
Flimzy

Terima kasih, ini berhasil untuk saya di Archlinux. Ada banyak rasa cron yang berbeda. ISC Debian adalah dari tahun 2004, jadi memperluas definisi "modern", tetapi tanpa info tentang sistem apa yang digunakan - sulit untuk memberikan detail itu!
RuiDC

1
Sayangnya, cron Ubuntu (setidaknya pada 14,04 LTS) tidak menyebutkan MAILFROMdi man 5 crontab.
Arto Bendiken

4
Anda dapat menginstal cronieuntuk menggantikan crondi Debian / Ubuntu. Ta-daa: MAILFROMada:
Andreas Klöckner

1
cronie tidak ada di Ubuntu 16.04
alex k

7

/ etc / mailname berisi bagian nama domain dari alamat FROM. Jika / etc / mailname berisi 'somecompany.com' maka cron yang menjalankan root akan memiliki pengirim sebagai root@somecompany.com


2
Beberapa info di sini: wiki.debian.org/EtcMailName - tidak mengatakan apakah nullmailer menggunakannya. Saya menggunakan sendmail dan sepertinya tidak berhasil.
Zitrax

5

Anda dapat mengatur nullmailer dari alamat melalui variabel lingkungan atau baris perintah. Argumen baris perintah adalah -fdan -Funtuk masing-masing alamat pengirim dan nama lengkap.

Biasanya Anda dapat mengatur variabel lingkungan di crontab.

NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"

5 0 * * * /usr/local/bin/daily.sh

Dia bertanya tentang FROM: not TO:
Kimvais

Hm, ini tidak berhasil karena alasan yang tidak diketahui.
Alexander Artemenko

3

Bagi saya, cara termudah untuk mengubah alamat dari pada suatu sistem, adalah membuat ~/.mailrcfile dengan konten seperti ini:

set name="My Full Name"
set from="myrealemail@example.com"

Salah satu mailperintah yang dijalankan sebagai pengguna saya, sekarang gunakan pengaturan ini.



0

Alternatif sederhana lain adalah dengan menggunakan mutt,

  • buat .muttrc di direktori home pengguna yang menjalankan cron dengan yang berikut ini

    set realname = "Joe User" set dari = "user @ host" set use_from = yes

  • Jalankan skrip dengan perintah mutt di dalamnya atau pipa perintah cron ke mutt dari untuk mengirim email.

Sebelum mutt mengirim dan mengirim email, ini akan mengatur header Dari dari file .muttrc.


0

Saya harus berubah /etc/mail/sendmail.cfdan /etc/mail/sendmail.mc, karena /etc/mailnametidak digunakan. Namun itu hanya mengubah dari domain, bukan pengguna.


0

Berikut beberapa hal yang dapat Anda terapkan untuk mengubah domain pengirim Anda:

Edit this file: /etc/mailname and change to:
    example.org
sudo postconf -e 'myhostname= example.org'
sudo systemctl restart postfix

-2

itu dikirimkan dari pengguna @ domain - pengguna adalah nama login yang dijalankan oleh cron - jadi Anda harus membuat pengguna 'saya' - dan menjalankan pekerjaan cron sebagai pengguna itu.

Kemudian untuk mengubah domain, ada beberapa kemungkinan berbeda - bisa jadi Anda perlu mengubah entri file hosts (atau, seperti di komputer saya, ketika saya mengonfigurasi ini - kotak ubuntu) - ubah / etc / mailname - untuk menjadi domain yang Anda inginkan.


1
Ini sebenarnya tidak benar - setidaknya tidak dalam banyak kasus. Di sistem saya, misalnya, hanya dikirim dari 'pengguna', bukan 'pengguna @ domain'. MTA bertanggung jawab untuk menambahkan nama domain lokal. Ini penting dalam beberapa kasus (seperti milik saya) di mana MTA saya (karena alasan yang terlalu rumit dan membosankan untuk dijelaskan) tidak menambahkan nama domain.
Flimzy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.