PDA

View Full Version : مشکل در ارتباط با Smtp و ارسال Email



__Genius__
سه شنبه 06 اسفند 1387, 16:09 عصر
با عرض سلام و خسته نباشید .
روی یکی از tutorial های code project نگاه میکردم این به طورم خورد که بعد از خوندنش شروع کردم به نوشتن ولی متاسفانه موقعی که میخوام Email رو ارسال کنم و زمانی که دکمه send رو میزنم Error داره و به این خط گیر میده


TcpClient SmtpServ = new TcpClient(ServSMTP.Text,25);در قسمت Smtp server آدرس رو به صورت Mail.yahoo.com وارد میکنم .

این هم از سورس برنامه :



private void button1_Click(object sender, EventArgs e)
{
Cursor cur = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
TcpClient SmptServ = new TcpClient(ServSMTP.Text,25);
string Data;
byte[] szData;
string CRLF = "\r\n";
LogList.Items.Clear();
try
{
NetworkStream NetStrm = SmptServ.GetStream();
StreamReader RdStrm = new StreamReader(SmptServ.GetStream());
LogList.Items.Add(RdStrm.ReadLine());
Data = "Hello Server " + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArr ay());
NetStrm.Write(szData, 0, szData.Length);
LogList.Items.Add(RdStrm.ReadLine());
Data = "Mail From : " + "<" + sFrom.Text + ">" + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArr ay());
NetStrm.Write(szData, 0, szData.Length);
LogList.Items.Add(RdStrm.ReadLine());

Data = "RCPT TO : " + "<" + sTo.Text + ">" + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArr ay());
NetStrm.Write(szData, 0, szData.Length);
LogList.Items.Add(RdStrm.ReadLine());
Data = "Data " + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArr ay());
NetStrm.Write(szData, 0, szData.Length);
LogList.Items.Add(RdStrm.ReadLine());

Data = "Subject :" + sSubject.Text + CRLF + sMessage.Text + CRLF + "." + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArr ay());
NetStrm.Write(szData, 0, szData.Length);
LogList.Items.Add(RdStrm.ReadLine()) ;
Data = "Quit " + CRLF ;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArr ay()) ;
NetStrm.Write(szData,0,szData.Length) ;
LogList.Items.Add(RdStrm.ReadLine()) ;

NetStrm.Close() ;
RdStrm.Close() ;
LogList.Items.Add("Close Connection ") ;
LogList.Items.Add("Send mail Successfully ...") ;
Cursor.Current = cur ;
}
catch(InvalidOperationException err)
{
LogList.Items.Add("Error :" + err.ToString());
}
این هم عکس برنامه


http://www.turboimagehost.com/p/1461685/Pic.JPG.html


http://s1d2.turboimagehost.com/sp/aaa7bd8d283714780807760ec7f63ce4/Pic.JPG

behzadk
سه شنبه 06 اسفند 1387, 17:44 عصر
1-قبلا بحث شده حتی در این مورد یه مقاله هم هست اگه یه جستجو بکنی پیدا می کنی
http://barnamenevis.org/forum/showthread.php?t=148713&highlight=email
http://barnamenevis.org/forum/showthread.php?t=143391&highlight=%D8%A7%D8%B1%D8%B3%D8%A7%D9%84+%D8%A7%DB %8C%D9%85%DB%8C%D9%84
2-در قسمت smtp server باید اینو وارد کنی
Smtp.yahoo.com
یا smtp.gmail.com

Sajjad.Aghapour
سه شنبه 06 اسفند 1387, 20:04 عصر
دوست عزیز این نمونه که شما گذاشتید با telnet به سرور و با اتصال به پورت 25 (پورت مربوط به smtp) ایمیل رو ارسال میکنه که اکثر مواقع هم به پوشه spam منتقل میشه..
در حالیکه با کلاس های دات نت به راحتی میتونید ایمیلتون رو ارسال کنید.در ضمن سرور yahoomail هم رایگان نیست.از سرور gmail استفاده کنید....

behzadk
چهارشنبه 07 اسفند 1387, 14:36 عصر
در این صورت باید از authenticate بشی با email و pwd
سپس بتونی mail ارسال کنی