मैं नीचे दिए गए आदेश का उपयोग करके अपने लिनक्स होस्ट से ईमेल भेजने में सक्षम हूं:

echo 'These are contents of my mail' | mailx -s 'This is my email subject' -a last2day_access_log catherine@gmail.com

साथ ही टेलनेट टू लोकलहोस्ट 25 को उसी लिनक्स होस्ट पर सफलतापूर्वक कनेक्ट किया गया है।

उसी लिनक्स होस्ट पर नीचे की तरह उत्तरदायी मेल मॉड्यूल की कोशिश की:

- hosts:

     localhost
      tasks:
        - mail:
            host: localhost
            port: 25
            to: 'catherine@gmail.com'
            subject: 'Ansible-report'
            body: 'System {{ ansible_hostname }} has been successfully provisioned.'
          delegate_to: localhost

लेकिन, मुझे नीचे त्रुटि मिलती है:

TASK [mail] ******************************************************************************************
task path: /web/playbooks/test.yml:17
Using module file /usr/lib/python2.7/site-packages/ansible/modules/notification/mail.py
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: localuser
<localhost> EXEC /bin/sh -c '/usr/bin/python2 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_zSM8eA/ansible_module_mail.py", line 372, in main
    smtp.sendmail(sender_addr, set(addr_list), composed)
  File "/usr/lib64/python2.7/smtplib.py", line 735, in sendmail
    raise SMTPSenderRefused(code, resp, from_addr)
SMTPSenderRefused: (553, '5.5.4 <root>... Domain name required for sender address root', 'root')

fatal: [localhost -> localhost]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "attach": null,
            "bcc": null,
            "body": "System mylocalhost has been successfully provisioned.",
            "cc": null,
            "charset": "us-ascii",
            "headers": null,
            "host": "localhost",
            "password": null,
            "port": 25,
            "secure": "try",
            "sender": "root",
            "subject": "Ansible-report",
            "subtype": "plain",
            "timeout": 20,
            "to": "catherine@gmail.com",
            "username": null
        }
    },
    "msg": "Failed to send mail to catherine@gmail.com: (553, '5.5.4 <root>... Domain name required for sender address root', 'root')",
    "rc": 1
}
        to retry, use: --limit @/web/playbooks/test.retry

PLAY RECAP *******************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=1

मेरे Linux होस्ट पर मेरा होस्टनाम नीचे है:

cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
mylocalhost

$ uname -a
Linux mylocalhost 3.10.0-1160.11.1.el7.x86_64 #1 SMP Mon Nov 30 13:05:31 EST 2020 x86_64 x86_64 x86_64 GNU/Linux

क्या आप कृपया सुझाव दे सकते हैं?

1
Ashar 29 जिंदा 2021, 22:36
1
क्या आपने त्रुटि द्वारा सुझाए गए उचित from: some@domain.example.com को जोड़ने का प्रयास किया है?
 – 
β.εηοιτ.βε
29 जिंदा 2021, 23:32
@β.εηοιτ.βε जो काम करता है !! कृपया इसे उत्तर के रूप में पोस्ट करें।
 – 
Ashar
29 जिंदा 2021, 23:42

1 उत्तर

सबसे बढ़िया उत्तर

त्रुटि संदेश आपको क्या बता रहा है:

SMTPSenderRefused: (553, '5.5.4 <root>... Domain name required for sender address root', 'root')

ऐसा लगता है कि आपका मेल कार्य वास्तव में <root> के रूप में मेल भेजने का प्रयास कर रहा है, जो काम कर सकता है, यदि आप केवल स्थानीय रूप से मेल भेजते हैं, लेकिन संभवतः बाहरी दुनिया में इसे अस्वीकार कर दिया जाएगा।

एक समाधान यह होगा कि आप अपने कार्य को बदल दें और अपने ईमेल में एक उचित from जोड़ें:

- mail:
    host: localhost
    port: 25
    from: 'someone@example.org'
    to: 'catherine@gmail.com'
    subject: 'Ansible-report'
    body: 'System {{ ansible_hostname }} has been successfully provisioned.'
  delegate_to: localhost
1
β.εηοιτ.βε 29 जिंदा 2021, 23:51