यहाँ कुछ है कि इस समस्या का एक जवाब के लिए इस सूत्र खोज की जा सकती है के लिए एक पक्ष नोट है। (इस समाधान को लागू करने से पहले नीचे दिए गए सावधानियों को पढ़ना सुनिश्चित करें।) मुझे उस क्लाइंट के लिए ईमेल भेजने में परेशानी हो रही थी जिस पर मेरे एमएस ऑफिस 365 सदस्यता के लिए उपयोगकर्ता या डोमेन नहीं था। मैं अपने [email protected] 365 खाते के माध्यम से एसएमटीपी की कोशिश कर रहा था लेकिन .NET मेल संदेश क्लाइंट @ क्लाइंटडॉमैन से संबोधित किया गया था। यह तब होता है जब "5.7.1 क्लाइंट की अनुमति नहीं है" त्रुटि मेरे लिए पॉप अप हो गई है। उपाय करने के लिए, MailMessage कक्षा भेजने की आवश्यकता है प्रेषक संपत्ति एक ईमेल पते पर सेट है कि मेरे आपूर्ति किए गए एसएमटीपी प्रमाण-पत्रों को O365 में "As As" के लिए अनुमति थी। मैंने नीचे दिए गए कोड में देखे गए मेरे मुख्य खाता ईमेल ([email protected]) का उपयोग करना चुना है। ध्यान रखें मैं किसी भी ईमेल मेरी O365 खाते को संबोधित इस्तेमाल किया जा सकता था (यानी [email protected], [email protected], आदि)
using System;
using System.Net.Mail;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (
MailMessage message = new MailMessage
{
To = { new MailAddress("[email protected]", "Recipient 1") },
Sender = new MailAddress("[email protected]", "Me"),
From = new MailAddress("[email protected]", "Client"),
Subject=".net Testing"
Body="Testing .net emailing",
IsBodyHtml=true,
}
)
{
using (
SmtpClient smtp = new SmtpClient
{
Host = "smtp.office365.com",
Port = 587,
Credentials = new System.Net.NetworkCredential("[email protected]", "Pa55w0rd"),
EnableSsl = true
}
)
{
try { smtp.Send(message); }
catch (Exception excp)
{
Console.Write(excp.Message);
Console.ReadKey();
}
}
}
}
}
}
कृपया ध्यान दें SmtpClient "के रूप में भेजें" अनुमति थी केवल डिस्पोजेबल और .NET फ्रेमवर्क में उपयोग करते हुए ब्लॉक का उपयोग करने के 3.5 के माध्यम से .NET फ्रेमवर्क 4 में से 2
उपयोगकर्ता जैसे SmtpClient का उपयोग करना चाहिए में सक्षम है ...
SmtpClient smtp = new SmtpClient
{
Host = "smtp.office365.com",
Port = 587,
Credentials = new System.Net.NetworkCredential("[email protected]", "Pa55w0rd"),
EnableSsl = true
};
try { smtp.Send(message); }
catch (Exception excp)
{
Console.Write(excp.Message);
Console.ReadKey();
}
जिसके परिणामस्वरूप ईमेल के हेडर कुछ इस तरह दिखेगा :
Authentication-Results: spf=none (sender IP is)
[email protected];
Received: from MyPC (192.168.1.1) by
BLUPR13MB0036.namprd13.prod.outlook.com (10.161.123.150) with Microsoft SMTP
Server (TLS) id 15.1.318.9; Mon, 9 Nov 2015 16:06:58 +0000
MIME-Version: 1.0
From: Client <[email protected]>
Sender: Me <[email protected]>
To: Recipient 1 <[email protected]>
- सतर्क रहें -
बारे में पता कुछ मेल क्लाइंट एक नोट के रूप भेजने वाले का पता प्रदर्शित कर सकता है हो सकता है। क्लाइंट < ग्राहक @ ClientDomain की ओर से
मेरे <[email protected]>: उदाहरण के लिए आउटलुक पठन फलक के शीर्ष लेख में इन पंक्तियों के साथ कुछ प्रदर्शित करेगा।कॉम >
हालांकि, इतने लंबे समय के रूप में ईमेल क्लाइंट प्राप्तकर्ता का उपयोग करता है की कुल कचरा नहीं है, यह पता करने के लिए उत्तर को प्रभावित नहीं करना चाहिए। जवाब अभी भी पते से उपयोग करना चाहिए। अपने सभी अड्डों को कवर करने के लिए, आप MailMessage.ReplyToList प्रॉपर्टी का भी उपयोग कर सकते हैं ताकि ग्राहक को सही उत्तर पता का उपयोग करने के लिए हर मौका मिल सके।
साथ ही, इस बात से अवगत रहें कि कुछ ईमेल सर्वर डोमेन मालिक नीति प्रतिबंधों पर बैठे किसी अन्य कंपनी के Behalf पर भेजे गए किसी भी ईमेल को अस्वीकार कर सकते हैं। अच्छी तरह से परीक्षण करना और किसी बाउंस बैक की तलाश करना सुनिश्चित करें। मैं आपको बता सकता हूं कि मेरा व्यक्तिगत हॉटमेल (mail.live.com) ईमेल खाता वह है जो मेरे एक निश्चित ग्राहक की ओर से भेजे गए संदेशों को अस्वीकार कर देगा, लेकिन अन्य ग्राहक ठीक से गुजरते हैं। हालांकि मुझे संदेह है कि मेरे क्लाइंट के डोमेन TXT "spf1" रिकॉर्ड्स के साथ इसका कुछ संबंध है, लेकिन मेरे पास कोई जवाब नहीं है कि यह एक डोमेन की तरफ से भेजे गए ईमेल को दूसरी ओर क्यों अस्वीकार कर देगा। शायद कोई जानता है कि इस विषय पर कुछ प्रकाश डाल सकता है?
क्या इससे कोई त्रुटि आती है? – BugFinder
हां आपको एक टाइमआउट मिलता है - यह स्पष्ट रूप से डिफ़ॉल्ट विफलता –
है इसलिए मैं आश्चर्यचकित होना शुरू कर रहा हूं कि यह सी # का उपयोग करके भी संभव है और System.Net.Mail नेमस्पेस की सीमाएं SSL सेटिंग्स से अधिक हैं। ऐसा लगता है कि एक्सचेंज के पास Office 365 पर इसका वेबसाइसेस सामने आया है और बहुत सारे लेख मेलबॉक्स आदि के साथ काम करने के लिए इसका लाभ उठाने के बारे में बात करते हैं। हालांकि मैं वास्तव में पूरे मेलबॉक्स को अपने LOB एप्लिकेशन में बेनकाब नहीं करना चाहता हूं। एसएमटीपी में 'एस' 'सरल' के लिए खड़ा है - मुझे विश्वास नहीं है कि माइक्रोसॉफ्ट के माइक्रोसॉफ्ट के मेल सर्वर की स्थापना माइक्रोसॉफ्ट की प्रोग्रामिंग भाषा के साथ काम नहीं कर सकती है। कृपया कोई मुझे बताओ कि मैं यहाँ कुछ याद कर रहा हूँ! –