PDA

View Full Version : مشکل با ارسال ایمیل از localhost



bade saba
سه شنبه 07 شهریور 1391, 17:07 عصر
سلام
من برای ارسال ایمیل کد زیر رو از فیلمهای سایت ماکروسافت پیدا کردم و تنظیمات رو هم با جستجو در اینترنت پیدا کردماما هر کاری میکنم باز هم با ارور A socket operation was attempted to an unreachable network 127.0.0.1:25 مواجه میشم ممنون میشم دوستان اگر میدونن مشکل از کجاست راهنمایی بکنن

کدها برای ارسال ایمیل
string urlBase = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;
string verifyUrl = "verifyNewUser.aspx?ID=" + strRegCode;
string fullPath = urlBase + verifyUrl;
string appPath = Request.PhysicalApplicationPath;
StreamReader sr = new StreamReader(appPath + "EmailTemplate/VerifiyNewUser.txt");

MailMessage message = new MailMessage();
message.IsBodyHtml = true;
message.From = new MailAddress("info@xyz.ir");
message.To.Add(new MailAddress(email));
//message.CC.Add(new MailAddress("suport@xyz.ir"));
message.Subject = "به سایت xyz خوش آمدید";

message.Body = sr.ReadToEnd();
sr.Close();

message.Body = message.Body.Replace("<%Username%>", username);
message.Body = message.Body.Replace("<%VerificationURL%>", fullPath);

SmtpClient client = new SmtpClient();
//try
//{
client.Send(message);
return true;
//}
//catch
//{
// return false;
//}

تنظیمات بخش web.config

<system.net>
<mailSettings>
<smtp>
<network
host="127.0.0.1"
port="25"
/>
</smtp>
</mailSettings>
</system.net>

تنظیماتی که در iis در بخش smtp e-mail انجام دادم هم اینه

91975

و با اروری که در بالا گفتم مواجه میشم
اینم بگم که اگه 127.0.0.1 رو با عبارت localhost جایگزین کنیم هم باز هم همین مشکل وجود داره

ممنون

kamrannazari
سه شنبه 07 شهریور 1391, 18:14 عصر
بايد از ميل سرور استفاده كني به صورت پيش فرض ميل سرور رو سيستم لوكال كه نصب نيست
يا بايد نرم افزار ميل سرور نصب كنيد و يا از هاست در اينترنت استفاده كنيد كه معولا ميل سرور روشون فعال هست

fakhravari
سه شنبه 07 شهریور 1391, 23:22 عصر
نیازی به نصب در IIS نیست.
اگر از سروی دریافت میکنید.

bade saba
چهارشنبه 08 شهریور 1391, 09:27 صبح
نیازی به نصب در IIS نیست.
اگر از سروی دریافت میکنید.

متوجه منظورتون نشدم، یعنی من الان باید چی کار کنم که این مشکل حل بشه؟

fakhravari
چهارشنبه 08 شهریور 1391, 10:29 صبح
تنظیمات اتصال در کد خراب است.

bade saba
چهارشنبه 08 شهریور 1391, 15:48 عصر
تنظیمات اتصال در کد خراب است.

چرا انقدر تلگرافی جواب میدید ؟؟؟
اگر واقعا میدونید مشکل کجاست ممنون میشم کمک کنید اگر هم نمیدونید که هیچی.
من همه کدها و تنظیمات رو در پست 1 گذاشتم. برای اینکه متوجه بشم یه جای تنظیمات اشکال داره نیاز به راهنمایی نبود چون ارور میده و واضحه که مشکل داره اینکه کجاش مشکل داره و چجوری میشه حلش کرد بخشیه که نیاز به راهنمایی داره

fakhravari
چهارشنبه 08 شهریور 1391, 23:44 عصر
شما که سرور نیستید که نیازی به تنظیمات سرور داشته باشید.
این ساختار کلی میل.
اگر ارسال نمیشه مشکل از یوزر و پس ip
public static bool SendEmail(string From, string To, string Body = "", string Subject = "", bool IsBodyHtml = false, string ToName = "", string FromName = "", bool UseDefaultCredentials = false, bool EnableSsl = false, string UserName = "info@ahhelayat.com", string Password = "velarg23", int Port = 25, string Host = "mail.a-velayat.com")
{
try
{
MailAddress FromAddr = new MailAddress(From, FromName, System.Text.Encoding.UTF8);
MailAddress ToAddr = new MailAddress(To, ToName, System.Text.Encoding.UTF8);
SmtpClient smtp = new SmtpClient();

smtp.Host = Host;
smtp.Port = Port;
smtp.EnableSsl = EnableSsl;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = UseDefaultCredentials;
smtp.Credentials = new System.Net.NetworkCredential(UserName, Password);

MailMessage message = new MailMessage(FromAddr, ToAddr);

message.Subject = Subject;
message.Body = Body;
message.IsBodyHtml = IsBodyHtml;
message.BodyEncoding = System.Text.Encoding.UTF8;

smtp.Send(message);
return true;
}
catch
{ return false; }
}

razeghaik1
چهارشنبه 08 شهریور 1391, 23:52 عصر
سلام.عزیزم این کد رو من خودم استفاده کردم و جواب هم گرفتم.
دوست داشتید استفاده کنید.
خیلی هم راحته

protected void Button1_Click(object sender, EventArgs e)
{
MailAddress from = new MailAddress(TextBox1.Text, "ميثاق کريمي", Encoding.UTF8);
MailAddress to = new MailAddress(TextBox2.Text);
MailMessage message = new MailMessage(from, to);
message.Subject = TextBox3.Text;
message.SubjectEncoding = Encoding.UTF8;
message.Body = TextBox4.Text;
message.BodyEncoding = Encoding.UTF8;
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Port = 587;
client.EnableSsl = true;
client.Credentials = new NetworkCredential("emaile girande", "passworde girande");
client.Send(message);

}

aliasghar2010
شنبه 11 شهریور 1391, 08:46 صبح
همانطوریکه دوستان اشاه کردند سرویس اس ام تی پی به طور پیش فرض روی ای ای اس 7 که روی ویندوز 7 امده فعال نصب نیست و شما برای این که از این سرویس بتونید استفاده کنید چند تا روش دارید یکی این که ریموت سرور ادمین نصب کنید
http://support.microsoft.com/kb/974877/en-us
و کانفیگ های لازم رو با توجه با توجه به این لینک انجام بدهید
http://technet.microsoft.com/en-us/library/cc772058(WS.10).aspx (http://technet.microsoft.com/en-us/library/cc772058%28WS.10%29.aspx)
ولی راه حل دیگه اینه که شما می توانید فعلا برای تست این سرویس از اس ام تی پی جمیل استفاده کنید تا زمانی که سایت رو رو سرور آپلود می کنید .
برای استفاده از این سرویس هم از کد زیر می توانید استفاده کنید :


MailMessage msg = new MailMessage();
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
try { msg.Subject = "Add Subject";
msg.Body = "salam mostafa xobi :| :| :| :)";
msg.From = new MailAddress("test1@gmail.com");
msg.To.Add("test@gmail.com");
msg.IsBodyHtml = true;
client.Host = "smtp.gmail.com";
System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential("test@gmail.com", "pass");
client.Port = int.Parse("587");
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = basicauthenticationinfo;
client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Send(msg); }
catch (Exception ex) { }