PDA

View Full Version : ارسال یک صفحه به دوستان



b.paseban
پنج شنبه 18 خرداد 1391, 18:48 عصر
سلام بر دوستان.
من می خوام کاربر بتونه آدرس صفحه ای که در اون قرار داره رو برای یکی از دوستان خودش ایمیل کنه .
برای این کار از یک صفحه که آی دی منحصر بفرد صفحه مقصد رو میگیره و برای کاربر میاره و کاربر اون آدرس رو ( که بصورت مخفی هست ) رو برای یکی از دوستان خودش ایمیل میکنه.(مثل همین سایت برنامه نویس که بالای هر تاپیکی ارسال این صفحه برای دوست تان رو در ابزار تاپیک قرار داده).
خوب برای این کار ما باید از طریق یکی از آدرس های ایمیل ایجاد شده در سایت (مثلا سایت برنامه نویس پس از فرستادن صفحه مورد نظر برای یک دوست از آدرس info@barnamenevis.org استفاده میکنه) استفاده کرد و یکی دیگر از فیلدهای مورد نیاز ما آدرس ایمیل گیرنده (ایمیل یک دوست) هست .
من از کد زیر برای این کار استفاده می کنم ولی ارور میده که نمیشه برای ایمیلی غیر از ایمیل های ساخته شده در سایت ارسال کرد.(مثلا فقط میشه برای info@barnamenevis.org ارسال کرد ولاغیر در صورتی که آدرس ایمیل کاربر چیزی غیر از این هست (مثلا یک YahooID ویا Gmail و یا ....)


SmtpClient MyMail = new SmtpClient();
MailMessage MyMsg = new MailMessage();
MyMail.Host = "Mail.MyDomain.Com";
MyMsg.From = new MailAddress("Mail@MyDomain.com");
MyMsg.To.Add(new MailAddress("MailAddressFriend@GmailOrYahoo.com"));
MyMsg.Subject = "Subject";
MyMsg.SubjectEncoding = Encoding.UTF8;
MyMsg.IsBodyHtml = true;
MyMsg.BodyEncoding = Encoding.UTF8;


StreamReader sr = new StreamReader(Server.MapPath("Mail.htm"));
string Body = sr.ReadToEnd();
sr.Close();
string Source = "Http://wwww.MyDomain.Com/News.aspx?Id=345";
Body = Body.Replace("#Name#", TxtName.Text);
Body = Body.Replace("#Source#", Source);
MyMsg.Body = Body;


MyMail.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["Mail@MyDomain.com"], ConfigurationManager.AppSettings["*********"]);
MyMail.Send(MyMsg);

که MailAddressFriend@GmailOrYahoo.com توسط یک TextBox پر میشه.
متن ارور به شکل زیره:


Mailbox unavailable. The server response was: <MailAddressFriend@GmailOrYahoo.com> No such user here

m.akar
پنج شنبه 18 خرداد 1391, 19:53 عصر
یک بار برنامه خود را دیباگ کنید ببینید آیا به SMTP Server درستی وصل می شوید؟ اگر خیر در هنگام ساخت SMTPClient آدرس سرور خود را در هنگام ایجاد شیئ به سازنده شیئ بدهید:

SmtpClient client = new SmtpClient("SMPTserverAddress");

b.paseban
پنج شنبه 18 خرداد 1391, 20:48 عصر
بله به SMTPClient وصل میشه ولی نمی دونم چرا نمی شه ایمیل رو بدرستی ارسال کرد .
من می تونم به همون ایمیل های ساخته شده در سایت ارسال کنم (مثلا صفحه نظرات کاربران بدرستی کار می کنه) ولی به آدرس هایی بر روی سرورهای دیگه نمی شه ایمیل ارسال کرد.

b.paseban
پنج شنبه 18 خرداد 1391, 21:47 عصر
هووووووووورا بالاخره پیدا کردم.:عصبانی++:
مشکل از تنظیمات بود.
توی این لینک (http://forum.winhost.com/showthread.php?p=20992) جواب مشکل رو پیدا کردم.