ฉันใช้ SMTP ระยะไกลผ่าน nullmailer และต้องมีการตั้งค่าจากฟิลด์เป็นชื่อเฉพาะ แต่ cron ตั้งเป็น root@my.sweet.server.com
ฉันจะเปลี่ยนเป็นบางสิ่งบางอย่างเช่น me@ya.ru ได้อย่างไร
ฉันใช้ SMTP ระยะไกลผ่าน nullmailer และต้องมีการตั้งค่าจากฟิลด์เป็นชื่อเฉพาะ แต่ cron ตั้งเป็น root@my.sweet.server.com
ฉันจะเปลี่ยนเป็นบางสิ่งบางอย่างเช่น me@ya.ru ได้อย่างไร
คำตอบ:
ฉันไม่คิดว่าคุณสามารถเปลี่ยนที่อยู่ FROM ได้ (บางคนควรเพิ่มตัวเลือก MAILFROM)
คุณสามารถทำสิ่งนี้แม้ว่าจะได้ผลลัพธ์ที่คล้ายกัน:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"
เอาต์พุตทั้งหมดถูกไพพ์ไปที่คำสั่ง mail ดังนั้นตัวแปร MAILTO จะไม่ถูกใช้เลย
ที่อยู่จะต้องมีการตั้งค่า แต่คุณอาจจะสามารถใช้ตัวแปร $ MAILTO - ตั้งค่าตัวเลือกที่เหลือให้เป็นตัวเลือก sendmail เพื่อให้คุณสามารถใช้ตัวเลือก -r และ -F
-s เป็นเรื่อง
-r เป็นที่อยู่ตอบกลับ
- F เป็นชื่อเต็มของผู้ส่ง (ทำให้ดูดีในไคลเอนต์อีเมล)
cron รุ่นทันสมัยยอมรับ "MAILFROM = ... " ในรูปแบบ crontab ฉันแนะนำให้คุณลอง "man 5 crontab" หากมันกล่าวถึง MAILFROM เวอร์ชันของคุณควรสนับสนุน วลีที่มองหาอยู่ตรงท้ายย่อหน้าที่พูดถึง MAILTO และควรเป็นดังนี้:
If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.
MAILFROM
man 5 crontab
cronie
เพื่อแทนที่cron
บน Debian / Ubuntu Ta-daa: MAILFROM
มีอยู่:
/ etc / mailname มีส่วนชื่อโดเมนของที่อยู่ FROM หาก / etc / mailname มี 'somecompany.com' ดังนั้น cron ที่รันสำหรับ root จะมีผู้ส่งเป็น root@somecompany.com
คุณสามารถตั้งค่า nullmailer จากที่อยู่ผ่านตัวแปรสภาพแวดล้อมหรือบรรทัดคำสั่ง อาร์กิวเมนต์บรรทัดคำสั่งคือ-f
และ-F
สำหรับที่อยู่ผู้ส่งและชื่อเต็มตามลำดับ
โดยปกติคุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมใน crontab
NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh
สำหรับฉันวิธีที่ง่ายที่สุดในการเปลี่ยนจากที่อยู่ในระบบคือการสร้าง~/.mailrc
ไฟล์ที่มีเนื้อหาเช่นนี้:
set name="My Full Name"
set from="myrealemail@example.com"
mail
คำสั่งใด ๆที่เรียกใช้ในฐานะผู้ใช้ของฉันตอนนี้ใช้การตั้งค่าเหล่านี้
ดูคำถามนี้ถ้าใช้เอ็กซิม:
ตัวอย่าง: เขียนใหม่ "จาก" ส่วนหัวไปยังซองจดหมาย "FROM"
ควรตั้งค่าที่อยู่ "จาก" เป็นเจ้าของ cronjob คุณสามารถแทนที่$header_from:
ด้วยที่อยู่ที่กำหนดเองของคุณหากคุณต้องการกำหนดให้ที่อยู่อีเมลเป็นรหัสอื่น
อีกวิธีง่าย ๆ คือใช้ mutt
สร้าง. muttrc ในโฮมไดเร็กทอรีของผู้ใช้ที่รัน cron ด้วยสิ่งต่อไปนี้
set realname = "Joe User" set จาก = "user @ host" set use_from = ใช่
รันสคริปต์ด้วยคำสั่ง mutt ในสคริปต์หรือไพพ์คำสั่ง cron เพื่อ mutt จากเพื่อส่งอีเมล
ก่อนที่จะส่ง mutt และอีเมลมันจะตั้งค่าส่วนหัว From จากไฟล์. muttrc
ฉันต้องเปลี่ยน/etc/mail/sendmail.cf
และ/etc/mail/sendmail.mc
เพราะ/etc/mailname
ไม่ได้ใช้ แต่เปลี่ยนจากโดเมนไม่ใช่ผู้ใช้
ต่อไปนี้คือสิ่งที่คุณสามารถนำไปใช้เพื่อเปลี่ยนโดเมนผู้ส่งของคุณ:
Edit this file: /etc/mailname and change to:
example.org
sudo postconf -e 'myhostname= example.org'
sudo systemctl restart postfix
มันถูกส่งจากผู้ใช้ @ โดเมน - ผู้ใช้เป็นชื่อเข้าสู่ระบบ cron กำลังทำงานอยู่ - ดังนั้นคุณต้องสร้างผู้ใช้ 'ฉัน' - และเรียกใช้งาน cron ในฐานะผู้ใช้นั้น
จากนั้นการเปลี่ยนโดเมนมีความเป็นไปได้ที่แตกต่างกัน - อาจเป็นได้ว่าคุณต้องเปลี่ยนรายการไฟล์โฮสต์ (หรือบนเครื่องของฉันเมื่อฉันกำหนดค่านี้ - กล่องอูบุนตู) - เปลี่ยน / etc / mailname - เป็นโดเมนที่คุณต้องการให้เป็น