क्रोन से ईमेल के लिए "From:" फ़ील्ड कैसे बदलें?


34

मैं nullmailer के माध्यम से दूरस्थ SMTP का उपयोग करता हूं और इसके लिए फ़ील्ड से विशिष्ट नाम की आवश्यकता होती है, लेकिन cron ने इसे root@my.sweet.server.com के रूप में सेट किया है।

मैं इसे कुछ भी कैसे बदल सकता हूँ me@ya.ru?


कौन सा क्रोन कार्यान्वयन (और ओएस)?
किम्विस

इस प्रश्न को देखें: serverfault.com/questions/438843/… एक और समाधान के लिए।
रोबिन

जवाबों:


13

मुझे नहीं लगता कि आप 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"

सभी आउटपुट को मेल कमांड पर ले जाया जाता है ताकि MAILTO वैरिएबल का उपयोग न हो।

पते को निर्धारित करने की आवश्यकता होगी लेकिन आप $ MAILTO चर का उपयोग करने में सक्षम हो सकते हैं। - बाकी विकल्पों को सेंडमेल विकल्प होने के लिए सेट करता है ताकि आप -r और और -F विकल्पों का उपयोग कर सकें।

-एस विषय है

-r उत्तर पता है

-F प्रेषक का पूरा नाम है (यह ईमेल ग्राहकों में अच्छा दिखता है)


serverfault.com/a/437319/30697 शायद स्वीकृत उत्तर होना चाहिए।
lkraav

34

क्रोन के आधुनिक संस्करण "MAILFROM = ..." को Crontab प्रारूप में स्वीकार करते हैं। मेरा सुझाव है कि आप "आदमी 5 कोंट्राब" का प्रयास करें। यदि इसमें MAILFROM का उल्लेख है, तो आपके संस्करण को इसका समर्थन करना चाहिए। वाक्यांश देखने के लिए MAILTO पर चर्चा कर रहे पैराग्राफ के अंत की ओर है, और ऐसा कुछ होना चाहिए:

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


6
जहाँ "आधुनिक" का अर्थ है? यह डेबियन अस्थिर (3.0pl1-124) में क्रोन के सबसे हालिया संस्करण द्वारा समर्थित नहीं है, जो मैं चैंज या डॉक्यूमेंटेशन में देख सकता हूं।
फ़्लज़ी

thx, इसने मेरे लिए आर्चलिनक्स पर काम किया। क्रोन के कई अलग-अलग स्वाद हैं। डेबियन का ISC 2004 से है, इसलिए "आधुनिक" की परिभाषा को बढ़ाया जा रहा है, लेकिन इस जानकारी का उपयोग किस प्रणाली पर किया जा रहा है, इसकी कोई जानकारी नहीं है - उस विवरण को प्रदान करना कठिन है!
रुईडीसी

1
दुर्भाग्य से, उबंटू के क्रोन (कम से कम 14.04 एलटीएस के रूप में) का कोई उल्लेख नहीं MAILFROMहै man 5 crontab
आर्टो बेंदीकेन

4
आप डेबियन / उबंटू पर cronieबदलने के लिए स्थापित कर सकते हैं cron। ता-दा: MAILFROMअस्तित्व:
एंड्रियास क्लोकेनर

1
cronie उबंटू में मौजूद नहीं है 16.04
एलेक्स k

7

/ etc / mailname में FROM पते का डोमेन नाम भाग होता है। यदि / etc / mailname में 'somecompany.com' शामिल है, तो रूट के लिए चल रहे क्रॉन को root@somecompany.com के रूप में प्रेषक होगा


2
यहाँ कुछ जानकारी: wiki.debian.org/EtcMailName - यह नहीं कहता है कि nullmailer इसका उपयोग करता है। मैं सेंडमेल का उपयोग करता हूं और यह इसके लिए काम नहीं करता था।
Zitrax

5

आप पर्यावरण चर या कमांड लाइन के माध्यम से पता से nullmailer सेट कर सकते हैं। आदेश पंक्ति तर्क हैं -fऔर -Fप्रेषक का पता और पूरा नाम क्रमशः के लिए।

आमतौर पर आप कोंट्रेब में पर्यावरण चर सेट कर सकते हैं।

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

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

वह FROM: TO TO के बारे में पूछ रहा है:
किम्विस

हम्म, यह अज्ञात कारण से काम नहीं करता है।
अलेक्जेंडर आर्टेमेंको

3

मेरे लिए, सिस्टम पर एड्रेस से बदलाव का सबसे आसान तरीका है ~/.mailrc, इस तरह की सामग्री के साथ एक फाइल बनाना :

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

mailमेरे उपयोगकर्ता के रूप में चलने वाली कोई भी कमांड, अब इन सेटिंग्स का उपयोग करें।


0

एक्ज़िम का उपयोग करते समय यह प्रश्न देखें:

एक्जिम: "हेडर" से "लिफाफे" को लिफाफे में फिर से लिखें।

इसे क्रोनजॉब के मालिक को "से" पता सेट करना चाहिए। आप $header_from:अपने कस्टम पते से प्रतिस्थापित कर सकते हैं यदि आप इसे किसी और चीज़ के लिए हार्ड-कोड करना चाहते हैं।


0

एक अन्य सरल विकल्प है म्यूट का उपयोग करना,

  • निम्नलिखित के साथ क्रोन चलाने वाले उपयोगकर्ता की होम डायरेक्टरी में -muttrc बनाएं

    सेट realname = "जो उपयोगकर्ता" से सेट = "उपयोगकर्ता @ होस्ट" सेट use_from = हाँ

  • इसमें म्यूट कमांड के साथ एक स्क्रिप्ट चलाएं या ईमेल भेजने के लिए म्यूट करने के लिए क्रोन कमांड को पाइप करें।

म्यूट भेजने और ईमेल करने से पहले, यह .muttrc फ़ाइल से से हैडर सेट करेगा।


0

मुझे बदलना पड़ा /etc/mail/sendmail.cfऔर /etc/mail/sendmail.mc, क्योंकि /etc/mailnameइसका इस्तेमाल नहीं किया गया था। यह केवल डोमेन से बदलता है, हालांकि उपयोगकर्ता नहीं।


0

आपके प्रेषक डोमेन को बदलने के लिए यहां कुछ चीजें दी जा सकती हैं:

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

-2

यह उपयोगकर्ता @ डोमेन से मेल किया जाता है - उपयोगकर्ता लॉगिन नाम है जो क्रोन के तहत चल रहा है - इसलिए आपको एक उपयोगकर्ता 'मुझे' बनाना होगा - और उस उपयोगकर्ता के रूप में क्रोन का काम चलाना होगा।

फिर डोमेन को बदलने के लिए, अलग-अलग संभावनाएं हैं - यह हो सकता है कि आपको होस्ट फ़ाइल प्रविष्टि (या, मेरी मशीन पर, जब मैं इसे कॉन्फ़िगर कर रहा था - एक ubuntu बॉक्स) को बदलने की आवश्यकता है - परिवर्तन / आदि / mailname - आप जिस डोमेन से आना चाहते हैं, वह होना चाहिए।


1
यह वास्तव में सच नहीं है - कम से कम कई मामलों में नहीं। उदाहरण के लिए, मेरे सिस्टम पर, यह केवल 'उपयोगकर्ता' से भेजा जाता है, न कि 'उपयोगकर्ता @ डोमेन' से। स्थानीय डोमेन नाम को जोड़ना MTA की जिम्मेदारी है। यह कुछ मामलों में महत्वपूर्ण है (जैसे मेरा) जहां मेरा एमटीए (कारणों से बहुत जटिल और वर्णन करने के लिए उबाऊ) डोमेन नाम नहीं जोड़ रहा है।
21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.