PDA

View Full Version : مشکل در ارسال Email با ASP.Net 2.0 و سی شارپ



hdv212
دوشنبه 10 اردیبهشت 1386, 13:05 عصر
سلام، شما که میگید جستجو کن، اینم جستجو :


<system.net>
<mailSettings>
<smtp>
<network host="mail.yourhost.com"
userName="your mail" password="password" />
</smtp>


'Obtain the Network Credentials from the mailSettings section
Dim credential As New System.Net.NetworkCredential( _
settings.Smtp.Network.UserName, settings.Smtp.Network.Password)

'Create the SMTP Client
Dim client As New SmtpClient()
client.Host = settings.Smtp.Network.Host
client.Credentials = credential

'Build Email Message
Dim email As New MailMessage
email.From = New MailAddress("email")
email.To.Add("email")
email.CC.Add("email")
email.Subject = "Test Email"
email.IsBodyHtml = True
email.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure
email.Body = "<strong>Hello Steve!</strong>"

'Send Email
client.Send(email)



توی تعریف آبجکت System.Net.NetworkCredential، در تابع سازندش اصلا من settings ندارم که بخوام settings.Smtp.Network.UserName, settings.Smtp.Network.Password رو دربیارم، توی
web.config هم تگ system.net و بقیه کدهاشو اضافه کردم، تازه اینم درست بشه من نمیدونم ارسال میشه یا نه چون اصلا نمیدونم تنظیمات SMTP رو چطوری باید ست کنم، یکی کمک کنه.

Keramatifar
دوشنبه 10 اردیبهشت 1386, 13:24 عصر
برای ارسال E-mail در C# .net 2 به این صورت عمل کن:



SmtpClient cl = new SmtpClient(MailSer);
cl.Credentials = new NetworkCredential(StringUserName, StringPassword);
cl.DeliveryMethod = SmtpDeliveryMethod.Network;
MailMessage msg = new MailMessage(StringMailFrom, StringMailTo, StringMailSubject, StringMailBody)
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
cl.Send(msg);

اول مشخصات میل سرور رو میدی، بعد هم مشخصات میل

hdv212
دوشنبه 10 اردیبهشت 1386, 18:00 عصر
بابا موقع فرستادن Error میده :
Failure sending mail

کد من اینه :
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Credentials = new System.Net.NetworkCredential("My Yahoo ID", "My Yahoo Password");
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.From = new System.Net.Mail.MailAddress("My Yahoo ID@yahoo.com");
message.To.Add(this.TextBox1.Text);
message.BodyEncoding = System.Text.ASCIIEncoding.UTF8;
message.IsBodyHtml = true;
message.SubjectEncoding = System.Text.ASCIIEncoding.UTF8;
message.Subject = this.TextBox2.Text;
message.Body = this.TextBox3.Text;
client.Send(message);

this.Label4.Text = "Message Sent!";

در ضمن در web.config هم این کد هارو نوشتم :
<system.net>
<mailSettings>
<smtp>
<network host="mail.yahoo.com" userName="My Yahoo ID" password="My Yahoo Password"/>
</smtp>
</mailSettings>
</system.net>


اول مشخصات میل سرور رو میدی، بعد هم مشخصات میل

مشکل همینه که مشخصات میل سرور رو چطوری و کجا بدم ؟؟ اصلا یه مثال برام بزنید، خواهش میکنم، مرسی

hdv212
دوشنبه 10 اردیبهشت 1386, 21:25 عصر
کسی نبود ؟

mahdi_negahi
دوشنبه 10 اردیبهشت 1386, 22:28 عصر
کسی نبود ؟
با اجازه اساتید و این واژه دوست عزیز همچین درست نیست
این داره کا رمیکنه البته کدهای 2003 ولی من 2005 ازش جواب گرفتن



MailMessage mail = new MailMessage();
SmtpMail.SmtpServer="smtp.gmail.com";
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1 );
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl","true");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername","mahdi.negahi" );
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword","" );
mail.To=txtEmail.Text;
mail.BodyFormat = MailFormat.Html;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.Body ="<font face=tahoma size=2px color=Blue>if you can not show farsi font please this work : in view menu choose Encoding and select Unicode(UTF-8)</font><table border=0><tr><td dir=\"rtl\" align=\"center\" colspan=\"2\"><font face=\"tahoma\" size=\"6px\" color=\"red\">اطلاعات پرونده</font></td></tr><tr><td dir=\"rtl\" align=\"center\"><font face=\"tahoma\" size=\"3px\" >شماره پرونده شما : <b>"+numberAccount.ToString()+"</b></font></td></tr><tr><td dir=\"rtl\" align=\"center\"><font face=\"tahoma\" size=\"3px\" >لطفا بعد از ورود به سایت پسورد خود را عوض کنید</font></td></tr><tr><td dir=\"rtl\" align=\"center\"><font face=\"tahoma\" size=\"3px\" >پسورد جدید شما : <b>"+newPass+"<b></font></td></tr></table><br><br><font face=\"tahoma\" size=\"3px\" > برای وارد شدن به قسمت تعیین وقت روی <a href=http://www.solcomputer.com/Login.aspx> ابجا </a>کلیک کنید</font>";
mail.Subject = "E-Clinic Information";
mail.From = "mahdi.negahi@gmail.com";
try
{
SmtpMail.Send(mail);
Label1.Visible = true ;
Label1.Text = "اطلاعات شما ارسال شد";
}
catch(Exception ex)
{
Label1.Visible = true ;
Label1.Text = "آدرس شما درست نمی باشد";
Label1.Text += ex.Message ;
}
finally
{
sqlConnection1.Close();

}

hdv212
دوشنبه 10 اردیبهشت 1386, 22:49 عصر
mahdi_negahi عزیز ممنون از لطفت ولی این خطا رو میگیره :
The message could not be sent to the SMTP server. The transport error code was 0x80040217. The server response was not available

هر چی هست مال تنظیمات Smtp هستش، چکارش کنم چطوری Smtp رو تنظیم کنم ؟

mahdi_negahi
دوشنبه 10 اردیبهشت 1386, 22:53 عصر
SMTP چی نوشتی ؟

hdv212
دوشنبه 10 اردیبهشت 1386, 23:07 عصر
عینا همونی که دادی ..

مهدی جان اگه میشه یه آف از طریق یاهو مسنجر برام بذار، آیدی من اینه :pesar_irooni_1362
مرسی

babi_wd
دوشنبه 10 اردیبهشت 1386, 23:32 عصر
چرا از Smtp هاست خودت استفاده نمیکنی؟

hdv212
دوشنبه 10 اردیبهشت 1386, 23:42 عصر
من اصلا هاست ندارم، فعلا روی سیستم خودمه .. الان با توجه به کد بالا چی باید جای smtp بنویسم ؟

hamid58
دوشنبه 10 اردیبهشت 1386, 23:49 عصر
تنظیمات خاصی نداره . معمولا داخل کنترل پنل هاست شما یک جایی هست که آدرس smtp هاست نوشته شده . یا به صورت IP هست یا به صورت چیزی شبیه ( mail.yoursite.com ) که فقط کافیه از اون داخل کد استفاده کنید .
اینجا رو هم یک نگاهی بکنید :

http://www.codeproject.com/useritems/EmailApplication.asp

در ضمن شما باید یک هاست بگیرید و روی اون کارتون رو انجام بدید . طریقه ارسال ایمیل روی هر هاست ممکنه متفاوت باشه و تنظیمات خاص خودش رو داشته باشه !

babi_wd
دوشنبه 10 اردیبهشت 1386, 23:51 عصر
من اصلا هاست ندارم، فعلا روی سیستم خودمه .. الان با توجه به کد بالا چی باید جای smtp بنویسم ؟

localhost
یا
127.0.0.1
یا
هیچی(مقدار دهی نشه)
البته باید Smtp روی IIS هم نصب باشه

mahdi_negahi
سه شنبه 11 اردیبهشت 1386, 00:00 صبح
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername","نام account" );
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword","پسورد " );


باید اینرارو یک account درست از همان smtp بگذاری یک accunt gmail که داری