PDA

View Full Version : ارسال ایمیل در دات نت 2



m.hamidreza
سه شنبه 09 مرداد 1386, 01:42 صبح
طبق مقاله ی مرجع کامل ارسال ایمیل در دات نت 2 جناب خالدیان که خدا حفظش کنه من این کد رو upload کردم ولی نه error میده نه email ارسال میشه ! :متفکر:





MailMessage mail = newMailMessage();
mail.From = newMailAddress("frommyemail");
mail.To.Add("toanyemail");
mail.Subject = "This is an email";
mail.Body = "this is the body content of the email.";
SmtpClient smtp = newSmtpClient("my mail server ip");
smtp.Credentials = newNetworkCredential("frommyemail", "pass");
smtp.Send(mail);


من می خوام بعد از register کاربرها یه email خوشامدگویی send کنم ولی تو مقاله گفته شده :


توجه: به هیچ عنوان از ایمیلی که اطلاعات داخل آن برای سایت حائز اهمیت میباشد جهت ارسال ایمیل استفاده نکنید
ایمیل هایی همچون Info و Support و...


پس از چه ایمیلیم send کنم ؟!:ناراحت:

sarasara
سه شنبه 09 مرداد 1386, 09:58 صبح
من هم همین مشکل رو داشتم، اگه mcAfee یا یه firewall دیگه داری چک کن ببین پورت 25 ات Protect نشده باشه!

rtech
سه شنبه 09 مرداد 1386, 10:20 صبح
ببینید من یک سورس دارم که همیشه ازش استفاده کردم و تا حالا هم هیچ مشکلی باهاش نداشتم البته خیلی روش کار کردم تا تونستم در واقع یک جوری درستش کنم . اینو اینجا میزارم تا تمام دوستانی که با فرستادن ایمیل مشکل دارن مشکلشون حل شه :

در Web.config دستورات زیر را وارد کنید :



<configuration>
<appSettings>
<add key="MyMailServer" value ="mail.yoursite.com"/>
<add key="MyMailServerPort" value ="25"/>
</appSettings>
</configuration>

که در قسمت Value باید سرور سایت خود را مشخص کنید . بعد از این کدی که براتون ضمیمه کردم میتونید برای ارسال استفاده کنید فقط تنها کاری که باید بکنید اینه که در سورس ایمیل خودتون رو در قسمت زیر وارد کنید :



mTo = Trim("yourmail@yoursite.com")

امیدوارم که مفید واقع بشه

m.hamidreza
سه شنبه 09 مرداد 1386, 11:00 صبح
توجه: به هیچ عنوان از ایمیلی که اطلاعات داخل آن برای سایت حائز اهمیت میباشد جهت ارسال ایمیل استفاده نکنید
ایمیل هایی همچون Info و Support و...

اینو چطور ؟

m.hamidreza
سه شنبه 09 مرداد 1386, 11:13 صبح
من هم همین مشکل رو داشتم، اگه mcAfee یا یه firewall دیگه داری چک کن ببین پورت 25 ات Protect نشده باشه!
من ZoneAlarm دارم چک کردم چیزی نیابیدم !
firewall شو off کردم ، shutdown شم کردم ولی نشد شما این کار رو کردی درست شد ؟
remove ش کنم ببینم چی میشه ، پس کد مشکل نداره ....

rtech
سه شنبه 09 مرداد 1386, 11:49 صبح
اینو چطور ؟
اون کدی که من گذاشتم رو تست کنید از تمام این ایمیل ها میتونید استفاده کنید من در تمام پروژه هام از این کد استفاده کردم و همه جور ایمیلی رو هم تست کردم و جواب داده

sarasara
سه شنبه 09 مرداد 1386, 12:24 عصر
من macAfee داشتم از پورت 25 ام prevent می کرد ZoneAlarm رو دقیقا نمی دونم ولی اگه Shotdown کردی جواب نداده فکر نمی کنم با Uninstall کردنش هم مشکل حل بشه، من از کد زیر برای فرستادن ایمیل استفاه کردم درست هم جواب داد:

SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("ایمیل فرستنده", "نام فرستنده");
smtpClient.Host = "آدرس هاستت";
smtpClient.Port = 25;
message.From = fromAddress;
MailAddress toAddress = new MailAddress("ایمیل گیرنده");
message.To.Add(toAddress);
message.Subject = "موضوع";

message.Body = "متن";
smtpClient.Send(message);

babi_wd
چهارشنبه 10 مرداد 1386, 01:45 صبح
طبق مقاله ی مرجع کامل ارسال ایمیل در دات نت 2 جناب خالدیان که خدا حفظش کنه من این کد رو upload کردم ولی نه error میده نه email ارسال میشه ! :متفکر:




MailMessage

mail = newMailMessage();
mail.From = newMailAddress("frommyemail");
mail.To.Add("toanyemail");
mail.Subject = "This is an email";
mail.Body = "this is the body content of the email.";
SmtpClient smtp = newSmtpClient("my mail server ip");
smtp.Credentials = newNetworkCredential("frommyemail", "pass");
smtp.Send(mail);
من می خوام بعد از register کاربرها یه email خوشامدگویی send کنم ولی تو مقاله گفته شده :

پس از چه ایمیلیم send کنم ؟!:ناراحت:

اگر اطلاعات مهمی ندارید استفاده کنید تذکر واسه اونایی بود که اطلاعات مهم دارن
از تنظیمات Web.config که rtech عزیز فرمودن استفاده کنید
از try...catch هم استفاده کنید تا ببینید ایراد از کجاست

safari123
چهارشنبه 10 مرداد 1386, 08:37 صبح
من با کد sarasara کار کردم درست جواب داد.

m.hamidreza
پنج شنبه 11 مرداد 1386, 18:37 عصر
من هنوز موفق نشدم ! :ناراحت:
همه ی کدهایی که دوستان گذاشتند رو test کردم send نمیشه error هم نمیده !
try/catch هم گذاشتم بازم انگار نه انگار ! فقط نمیدونم کد try/catch رو درست نوشتم یا نه !

کد :



try
{
SmtpClient smtpClient = newSmtpClient("my mailserver IP", 25);
MailMessage message = newMailMessage(from, to, subject, body);
smtpClient.UseDefaultCredentials = true;

smtpClient.Send(message);
}
catch (FormatException ex)
{
Response.Write("Format Exception: " + ex.Message);
}
catch (SmtpException ex)
{
Response.Write("SMTP Exception: " + ex.Message);
}
catch (Exception ex)
{
Response.Write("General Exception: " + ex.Message);
}



با



smtp.Credentials = new NetworkCredential("emailfrom,password");



هم کار نکرد ؛ الان بخوام exception رو تشخیص بدم کدم درسته یا غلطه ؟

Nightbat
شنبه 13 مرداد 1386, 10:40 صبح
یه BreakPoint بذار ببین تو کدت چه خبره ...

maxpayn2
شنبه 13 مرداد 1386, 10:59 صبح
سلام
این رو هم امتخان کن :



SmtpClient smtp = newSmtpClient("mail.domain.com");
smtp.Credentials = newNetworkCredential(from, "password");
MailMessage mail = newMailMessage();
mail.From = newMailAddress(from);
mail.To.Add(emailTextBox.Text);
mail.Subject = "Welcome to my site";
mail.IsBodyHtml = true;
mail.Body = body;
smtp.Send(mail);



from و body دو متغیر string هستن ، به جای domain دامین سایت خودت رو بذار ( البته اگه آدرس smtp که شرکت ثبت کننده بهت اعلام کرده جور دیگه ای هست باید اون رو بنویسی ) و به جای pasword هم همینطور
موفق باشی

jafaripur
یک شنبه 14 مرداد 1386, 01:23 صبح
برای استفاده از این استفاده کنید مشکلی نداره .

Imports System.Net.Mail
Imports System.Net



Public Function SendEmail(ByVal StrTo As String, ByVal StrFrom As String, ByVal StrSubject As String, ByVal StrBody As String) As Boolean
Dim Email As New MailMessage(StrFrom, StrTo)
Email.Subject = StrSubject
Email.Body = StrBody
Email.BodyEncoding = Encoding.UTF8
Email.IsBodyHtml = True
Email.Priority = MailPriority.Normal
Dim mailClient As New SmtpClient()
Dim basicAuthenticationInfo As New NetworkCredential(ConfigurationManager.AppSettings ("SMTPUser"), ConfigurationManager.AppSettings("SMTPPass"))
mailClient.Host = ConfigurationManager.AppSettings("SMTP")
mailClient.UseDefaultCredentials = False
mailClient.Credentials = basicAuthenticationInfo
Try
mailClient.Send(Email)
Return True
Catch ex As Exception
Return False
End Try
Email.Dispose()
End Function

Behrouz_Rad
یک شنبه 14 مرداد 1386, 08:18 صبح
ببینید دوستان من.
ارسال ایمیل چیزی نیست که بشه یک کد ثابت برای اون ارائه داد و این بستگی مستقیم به امکاناتی داره که هاست برای شما فراهم می کنه.
مثلا برخی از هاست ها از کامپوننت ASPMAIL استفاده می کنند! در این صورت کدهای هیچ یک از دوستان عملا کاربردی نخواهد داشت!
در اینجا هرکس کدی رو قرار میده که برای خودش درست کار کرده.
این لزوما به این معنا نیست که همین کد هم برای فرد دیگری جواب بده!
راحت ترین، کم دردسرترین و بهترین کاری که میشه انجام داد، ارسال یکی ایمیل به هاست و کمک خواستن از اونها برای ارسال ایمیل هست.
اونها حتما نمونه کدی رو که صحیح هست و بر روی سرور اونها جواب میده به شما میدن.
با توجه به این نکات، میشه از ایجاد مداوم تاپیک هایی از این دست در این بخش جلوگیری کرد.

موفق باشید.