لا يمكن استخدام smtpclient إرسال البريد مع localhost iis الموقع

StackOverflow https://stackoverflow.com/questions/326853

سؤال

لدي asp.net mvc التطبيق قيد التشغيل على المستوى المحلي iis الموقع الذي فشل لإرسال البريد باستخدام SmtpClient من النظام.صافي.البريد.أنا أحاول أن إرسال بريد إلكتروني إلى بلدي عنوان هوتميل و أحصل على مأخذ استثناء.أي فكرة ما المشكلة ؟

using(var message = new MailMessage())
            {
                message.From = new MailAddress(AdminEmail);
                message.To.Add(new MailAddress(to));
                message.Subject = subject;
                message.Body = body;
                message.IsBodyHtml = false;

                var mailClient = new SmtpClient();
                mailClient.Send(message);
            }

هنا هو الاستثناء:

{System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:25
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)}

أعتقد أن التطبيق الافتراضي تجمع لا يكون الوصول إلى intepub\wwwroot.هنا هو خطأ عندما يحاول اختبار الاتصال:

تم تكوين الملقم لاستخدام مصادقة المرور مع المدمج في الاعتبار للوصول إلى تحديد المسار الفعلي.بيد أن "إدارة IIS" لا يمكن التحقق من ما إذا كان المدمج في حساب لديه حق الوصول.تأكد من أن هوية تجمع التطبيق لديه حق الوصول للقراءة إلى المسار الفعلي.إذا كان هذا الملقم منضما إلى مجال ، و هوية تجمع التطبيق NetworkService أو LocalSystem ، تحقق من أن \$ لديه حق الوصول للقراءة إلى المسار الفعلي.ثم اختبار هذه الإعدادات مرة أخرى.

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

المحلول

وبناء على إجاباتك على تعليقاتي فوق جو، لم يكن لديك SMTP تمكين على الجهاز المحلي. ويندوز فيستا لا يأتي مع SMTP.

وعلى هذا النحو، فسوف إما أن تثبيت التطبيق SMTP 3rd الطرف التي سوف تعمل على ويندوز فيستا، أو استخدام التطبيق آخر لترسل عبر، في هذه الحالة، حساب Hotmail الخاص بك قد تسمح لك بإرسال المنتهية ولايته عن طريق ذلك. أنا لا أستعمل هوتميل لذلك لا أعرف ما إذا كان سوف أم لا ولكن ينبغي أن يكون شيء من هذا القبيل smtp.hotmail.com وبيانات الاعتماد الخاصة بك. الحساب الأساسي بلدي حساب بريد جوجل، لذلك يمكن استخدامه عبر smtp.gmail.com وبطبيعة الحال، أوراق اعتمادي.

نصائح أخرى

لتنمية على الجهاز المحلي الخاص بك، يمكنك أيضا استخدام مجلد قطرة:

http://www.codersbarn.com /post/2008/11/30/ASPNET-Contact-Form.aspx

بدلا من محاولة إعداد SMTP محليا ، لماذا لا تكوين اتصال SMTP لإرسال مباشرة عن طريق هوتميل, فقط إضافة عناصر التكوين على شبكة الإنترنت.التكوين إلى تمكين كل شيء.

تحرير

أعتقد هذه المادة التي كتبت في حين يعود قد تساعدك على الخروج.

وحاول صراحة تحديد الدولة المضيفة للSmtpClient.

مثال:
SmtpClient mailClient = SmtpClient جديد ()؛

وmailClient.Host = "127.0.0.1"؛

وmailClient.Send (الرسالة)؛

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