2012-10-08 22 views
7

के माध्यम से ई-मेल भेजें मैं bellowजीमेल एसएमटीपी

MailMessage message = new MailMessage(); 
message.To.Add("my email"); 
message.Subject = "subject"; 
message.From = new MailAddress("any email"); 
message.Body = "body"; 

message.Attachments.Add(new System.Net.Mail.Attachment(path)); 
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); 
smtp.EnableSsl = true; 
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtp.UseDefaultCredentials = false; 
smtp.Credentials = new System.Net.NetworkCredential("my user", "my pass"); 

smtp.Send(message); 

कोड का उपयोग सी # में जीमेल एसएमटीपी का उपयोग कर एक ईमेल भेजने के जब मैं ईमेल प्राप्त कोशिश कर रहा हूँ, से क्षेत्र my user से भरा है। मैं UseDefaultCredentialsfalse के रूप में उपयोग कर रहा हूं। जब मैं परिणाम देखता हूं, फ़ील्ड my user से भरा हुआ है। फ़ील्ड any email से भरा नहीं होना चाहिए? प्रेषक के रूप में any email का उपयोग करके मैं एक ईमेल कैसे भेज सकता हूं?

+1

मुझे लगता है कि यह जीमेल के लिए अपनी एसएमटीपी सेवा के उपयोग को नियंत्रित करने का एक तरीका है। अगर कोई भी जीमेल के माध्यम से किसी और को मेल भेज सकता है, तो स्पैमर वहां झुंड लेते हैं। इस तरह से सभी ईमेल 'आपकी ओर से' भेजे गए हैं (= 'मेरा उपयोगकर्ता') – n8wrl

+0

मैंने इसे पहले ही जावा कार्यक्रम में किया है ... कई साल पहले! :( – Victor

+0

क्या आपके पास प्राप्त ईमेल के पूर्ण स्रोत की जांच करने का मौका था? इसमें "प्रेषक: कोई ईमेल" और "प्रेषक: इसके बजाय मेरा उपयोगकर्ता" होना चाहिए। जिस ऐप को आप ईमेल देख रहे हैं वह प्रेषक को प्रस्तुत कर सकता है अगर यह था, और भ्रम का कारण बनता है। –

उत्तर

4

अपने कोड स्निपेट को चलाने के बाद मुझे मिलती है:

Return-Path: <my user> 
Received: from Psi ([80.92.234.64]) 
     by mx.google.com with ESMTPS id f1sm20531634wiy.2.2012.10.08.10.07.49 
     (version=TLSv1/SSLv3 cipher=OTHER); 
     Mon, 08 Oct 2012 10:07:49 -0700 (PDT) 
Message-ID: <[email protected]> 
Sender: Roman R. <my user> 
MIME-Version: 1.0 
From: any email 
To: my email 
Date: Mon, 08 Oct 2012 10:07:49 -0700 (PDT) 
Subject: Subject 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: quoted-printable 

Body 

Sender गूगल मेल के साथ प्रमाणित करने के लिए इस्तेमाल किया ईमेल पता है। From कोड में प्रदान किए गए "से" है। प्राप्त करने वाला एप्लिकेशन दो को भ्रमित कर सकता है, और शेष जैसा ही अपेक्षित दिखता है। कुछ मेल क्लाइंट से + प्रेषक (जब वे अलग होते हैं) को "प्रेषक द्वारा प्रेषित द्वारा भेजे गए" के रूप में प्रस्तुत करते हैं।

आप इस तथ्य से चिंतित हो सकते हैं कि Google Mail अभी भी उस खाते को प्रकट करता है जहां से ईमेल भेजा जाता है, Sender फ़ील्ड के माध्यम से, लेकिन यह इस तरह काम करता है। आप इस खाते से भेजते हैं।

और, एक और संभावित कारण From मेल पता स्वयं ही है। यदि आपने इसे अपने Google Mail खाते में अपने स्वयं के पते (और एक लिंक के साथ परीक्षण ईमेल के माध्यम से पुष्टि) के रूप में जोड़ा है, तो Google Mail इसे From फ़ील्ड पर रखने की अनुमति देगा। अन्यथा यह इसे छोड़ सकता है और इसे Sender के साथ प्रतिस्थापित कर सकता है।

+0

मैं 'जीमेल 'सेटिंग्स हूं,' FROM' फ़ील्ड को बदलने के लिए एक सेटिंग है। यह एक बेहतर समाधान है, यह और अधिक पेशेवर बनाता है। बेहतर है 'समर्थन @ से एक ईमेल प्राप्त करें .company.com' 'support.my.company @ gmail.com' – Victor

+1

से यह अंतिम पैराग्राफ में मेरा मुद्दा था। यदि आपने अपना ईमेल पता जीमेल में अपने वैकल्पिक पते के रूप में जोड़ा है, तो आप इसे 'से' फ़ील्ड में डाल सकते हैं सी # कोड भी। अन्यथा इसे त्याग दिया जा सकता है, और जीमेल पर आप कुछ भी "से" में नहीं डाल सकते हैं, आप केवल पुष्टि किए गए पतों की सूची से ही चुनते हैं।जैसा कि आप उत्तर में मेरे उद्धृत ईमेल से देख सकते हैं, जीमेल सही ढंग से वहां से डाल दिया गया है, क्योंकि "कोई मेल" मेरे वैकल्पिक पते में से एक था। –

5

मैं सेवा के रूप में जीमेल का उपयोग करके ईमेल भेजने के लिए बहुत ही नियोजित हूं। मैं मूल रूप से .From प्रॉपर्टी को "[email protected]" पर सेट करता हूं लेकिन ईमेल अभी भी हेडर सेट से प्रमाणित करने के लिए उपयोग किए गए खाते में आता है।

इस समस्या का सामना कर रहा ReplyToList संपत्ति (.ReplyToList.Add(MailAddress))) ताकि प्राप्तकर्ता उस संदेश का जवाब "स्वचालित" एक है कि हम बाहर जाने वाले संदेश भेजने के लिए उपयोग करने के अलावा अन्य किसी ईमेल खाते के जवाब भेज देंगे इस्तेमाल किया।

संपादित करें:

अधिक जानकारी के लिए this thread on Google Groups देखते हैं। इसके अलावा, a related answer on Stack Overflow

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