2012-11-16 15 views
6

नहीं भेज सकता है मैं ईमेल संदेश भेजने के लिए टट्टू मेल का उपयोग कर रहा हूं (क्योंकि मैं अपने स्थानीय विंडोज बॉक्स पर काम करने के लिए एक्शनमेलर कभी नहीं प्राप्त कर सकता था)।होस्टनाम सर्वर प्रमाणपत्र से मेल नहीं खाता है - ईमेल

मेरी user_mailer.rb फ़ाइल में कोड Pony.mail विधि को यह कॉल में शामिल हैं:

Pony.mail({ 
    :to => email_address, 
    :from => 'MyChairSales <[email protected]>', 
    :subject => subject, 
    :body => email_body, 
    :html_body => html_body, 
    :via => :smtp, 
    :via_options => { 
    :address    => 'mail.mychairsales.com', 
    :port     => '25', 
    :enable_starttls_auto => true, 
    :user_name   => 'mychairs', 
    :password    => 'thepassword', 
    :domain    => "mychairsales.com" # the HELO domain provided by the client to the server 
    } 
}) 

यह (मैं ईमेल इस पद्धति का उपयोग प्राप्त हुआ है) काम कर रहा था, लेकिन अब त्रुटि के साथ विफल हो रहा है "होस्ट नाम सर्वर प्रमाणपत्र से मेल नहीं खाता "।

["/usr/lib64/ruby/1.9.3/openssl/ssl-internal.rb:121:in `post_connection_check'", 
"/usr/lib64/ruby/1.9.3/net/smtp.rb:585:in `tlsconnect'", "/usr/lib64/ruby/1.9.3 
/net/smtp.rb:560:in `do_start'", "/usr/lib64/ruby/1.9.3/net/smtp.rb:519:in `start'", 
"/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib/mail/network/delivery_methods 
/smtp.rb:144:in `deliver!'", "/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib 
/mail/message.rb:245:in `deliver!'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib 
/pony.rb:166:in `deliver'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib 
/pony.rb:138:in `mail'", "/home4/mychairs/rails_apps/chairsales/app/mailers 
/user_mailer.rb:32:in `send_mail'", "/home4/mychairs/rails_apps/chairsales/app/mailers 
/user_mailer.rb:23:in `send_password_reset_email'",... 

किसी भी मार्गदर्शन बहुत सराहना की जाएगी:

यहाँ स्टैक ट्रेस के शीर्ष है!

+0

मेरे पास प्रश्न पूछने के लिए एक प्रतिभा है, कोई भी जवाब देने की परवाह नहीं करता है। :) – vbsql7

उत्तर

17

थोड़ा देर हो चुकी है लेकिन मुझे यह त्रुटि भी मिली लेकिन रुबी मेल मणि के साथ। यदि आपका एसएमटीपी सर्वर टीएलएस का समर्थन करता है, तो यह टीएलएस का उपयोग करने और एसएसएल प्रमाणपत्र प्रमाणित करने का प्रयास करेगा। अगर प्रमाण पत्र किसी अन्य नाम के अलावा होस्टनाम के लिए जारी किया गया है या प्रमाणपत्र को प्रमाणित नहीं किया जा सकता है (उदाहरण के लिए यदि यह स्वयं हस्ताक्षरित है और आप सीए पर भरोसा नहीं करते हैं), तो यह त्रुटि के साथ विफल हो जाएगा "होस्टनाम मेल नहीं खाता सर्वर प्रमाणपत्र "।

इसके आसपास पाने के लिए, openssl_verify_mode विकल्प का उपयोग करें। प्रमाण पत्र का कोई सत्यापन करने के लिए इसे ओपनएसएसएल :: एसएसएल :: VERIFY_NONE पर सेट किया जा सकता है - यह अभी भी एसएमटीपी सत्र को एन्क्रिप्ट करेगा। या ओपनएसएसएल लाइब्रेरी के भीतर अन्य विकल्प उपलब्ध हैं।

अपने उदाहरण का उपयोग करना, यह होगा:

Pony.mail({ 
    :to => email_address, 
    :from => 'MyChairSales <[email protected]>', 
    :subject => subject, 
    :body => email_body, 
    :html_body => html_body, 
    :via => :smtp, 
    :via_options => { 
    :openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE, 
    :address    => 'mail.mychairsales.com', 
    :port     => '25', 
    :enable_starttls_auto => true, 
    :user_name   => 'mychairs', 
    :password    => 'thepassword', 
    :domain    => "mychairsales.com" # the HELO domain provided by the client to the server 
    } 
}) 

यह भी रूप में अच्छी तरह मेल मणि के लिए काम करता है।

+1

एक आकर्षण, किसी भी सुरक्षा मुद्दे की तरह काम करता है? –

+1

हां! सुरक्षा मुद्दे हैं! यह इंटरनेट पर किसी को भी अनुमति देता है जो आपके कनेक्शन को चुरा लेने और अपना डेटा पढ़ने के लिए आपके और आपके सर्वर के बीच है। आपको इसे सुरक्षित एप्लिकेशन में कभी नहीं करना चाहिए - आपको केवल उन सर्वरों के साथ काम करना चाहिए जो मान्य प्रमाणपत्र जारी करते हैं। – Brad

+1

हां, यह सच है। यदि आपको उस सर्वर की पहचान सत्यापित करने की आवश्यकता है जिसे आप मध्य हमलों में मनुष्य को रोकने के लिए संचार कर रहे हैं तो आपको होस्ट सत्यापन बंद नहीं करना चाहिए। ऐसे मामले हो सकते हैं जहां यह आवश्यक नहीं है या संभव है यदि आप किसी तृतीय पक्ष से निपट रहे हैं जो "मान्य" प्रमाणपत्र जारी करता है लेकिन वे किसी कारण से होस्टनाम से मेल नहीं खाते हैं। स्पष्ट रूप से सबसे अच्छा अभ्यास नहीं है। –

संबंधित मुद्दे