سؤال

يمكنني جعل كل من System.Net.Mail وSystem.Web.Mail يعملان مع GMail، لكن لا يمكنني جعلهما يعملان مع smtp.att.yahoo.com.

أحصل على إعدادات SMTP من مفاتيح Web.config الخاصة بي.تعمل هذه الإعدادات عندما أقوم بالإرسال باستخدام System.Web.Mail، ولكنها تفشل مع System.Net.Mail.

    <add key="SmtpServer" value="smtp.att.yahoo.com"/>
    <add key="SmtpServerAuthenticateUser" value="ctrager@sbcglobal.net"/>
    <add key="SmtpServerPort" value="465"/>
    <add key="SmtpUseSSL" value="1"/>
    <add key="SmtpServerAuthenticatePassword" value="MY PASSWORD"/>

إليك الكود الذي يلتقط إعداداتي، ويعمل مع GMail، ويفشل مع att.yahoo:

        SmtpClient smtp;

        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServer", "")))
        {
           smtp = new SmtpClient(Util.get_setting("SmtpServer", ""));
        }
        else
        {
           smtp = new SmtpClient();
        }


        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerAuthenticatePassword", "")))
           smtp.Credentials = new System.Net.NetworkCredential(
               Util.get_setting("SmtpServerAuthenticateUser", ""), 
               Util.get_setting("SmtpServerAuthenticatePassword", ""));

        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerPort", "")))
           smtp.Port = int.Parse(Util.get_setting("SmtpServerPort", ""));

        if (Util.get_setting("SmtpUseSSL", "0") == "1")
           smtp.EnableSsl = true;

        smtp.Send(message);

هل هذه مشكلتي؟

http://blogs.msdn.com/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

هل كانت مفيدة؟

المحلول

ولقد تعلمت الجواب. الجواب:

ولأن System.Net.Mail لا يدعم "ضمني" SSL، فقط "صريح" SSL.

نصائح أخرى

والأجوبة السابقة المتعلقة اتصالات SSL الضمنية والصريحة عبر System.Net.Mail هو الصحيح تماما. الطريقة وكنت قادرا على اجتياز هذه العقبة، ودون الحاجة إلى استخدام System.Web.Mail الآن عفا عليها الزمن، وكان لاستخدام (كائنات التعاونية البيانات) CDO.

وأنا مفصلة وأعطى مثالا على وظيفة أخرى تجاوز سعة مكدس (<لأ href = "https://stackoverflow.com/questions/1082216/gmail-smtp-via-c-net-errors-on-all-ports/ 3845907 # 3845907 "> بريد جوجل SMTP عبر أخطاء C # .NET على كافة المنافذ ) إذا الفضوليين. خلاف ذلك، يمكنك الذهاب مباشرة إلى المقال KB على http://support.microsoft.com/kb/310212 .

وآمل أن يساعد هذا!

إجابة جيميل تعود إلى الأمام.يقول استخدم النظام الجديد.شبكةمكتبة البريد، ولكن المشكلة هي أن النظام.شبكة.Mail لا يعمل مع SSL على المنفذ 465 مثل System.ويب.البريد لم/يعمل!

لقد ضربت رأسي ضد هذا طوال اليوم ولإعدادات متطابقة System.out.ويب.أعمال البريد والنظام.شبكة.Mail لا يعمل (على الأقل بالنسبة لخادم SMTP الذي كنت أختبره)، وهنا كنت أفكر أنه يجب علي دائمًا الترقية إلى أحدث عروض Microsoft للحصول على الأفضل في الحياة.:-(

يبدو أن هذا الرابط لمدونة M$ يوضح كل شيء؛"System.net.mail يدعم فقط" SSL الصريح "." وأفترض أن خادم SMTP الذي كنت أختبره مع رغبات SSL الضمنية.(إنه خادم ياهو راجع للشغل).

نظرًا لأن "الترقية" إلى واجهة برمجة التطبيقات الجديدة ستؤدي بلا شك إلى تعطيل وظائف المستخدمين الذين لديهم خوادم تتطلب طبقة مقابس آمنة (SSL) ضمنية، فيبدو أنها خطوة إلى الوراء من أجل "الترقية" في هذه الحالة.إذا كان لا يزال بإمكانك تجميع التحذيرات فقط، فما عليك سوى تعطيل هذه التحذيرات (0618 إذا كنت أتذكر) واستمر في النقل بالشاحنات.أوه، وقد ترغب في التفكير في ضمان تشغيل تطبيقك دائمًا مقابل إصدار .NET Framework الذي قمت بإنشائه واختباره عن طريق ملف التكوين، فقط في المستقبل إذا قام M$ بنسخ واجهة برمجة التطبيقات القديمة، فسيكون تطبيقك آمنًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top