در هنگام ارسال ایمیل دچار خطای زیر میشم
1)مشکل از احراز هویت است.
2)کد های ارسال ایمیل خود را قرار دهید.
3)smtp شما چیست ؟
private string createEmailBody(string userName, string title, string message, string Urlpost, string imgnews) { string body = string.Empty; //using streamreader for reading my htmltemplate using (StreamReader reader = new StreamReader(Server.MapPath("Themeemail.html"))) { body = reader.ReadToEnd(); } body = body.Replace("{UserName}", userName); //replacing the required things body = body.Replace("{Title}", title); body = body.Replace("{message}", message); body = body.Replace("{Urlpost}", Urlpost); body = body.Replace("{imgnews}", imgnews); return body; } private void SendHtmlFormattedEmail(string subject, string body) { using (MailMessage mailMessage = new MailMessage()) { int i, count = grlatter.Rows.Count; for (i = 0; i < count; i++) { mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]); mailMessage.Subject = subject; mailMessage.Body = body; mailMessage.IsBodyHtml = true; mailMessage.To.Add(new MailAddress(grlatter.Rows[i].Cells[2].Text)); SmtpClient smtp = new SmtpClient(); smtp.Host = ConfigurationManager.AppSettings["Host"]; smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]); System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"]; //reading from web.config NetworkCred.Password = ConfigurationManager.AppSettings["Password"]; //reading from web.config smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]); //reading from web.config smtp.Send(mailMessage); } } }
از جیمیل استفاده میکنم و از پورت 587
مقدار دو property را تنظیم کنید:
DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false,
مطمعن شوید رمز عبور و ایمیل شما صحیح باشد،
smpt gmail : smtp.gmail.com
نکته دیگر این که رمز عبور نباید HASH شده باشد.
اگر باز هم عمل نکرد باید این ویژگی را در GMAIL فعال کنید: لینک
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials =
false
,
این دو رو باید در کجا تنظیم کنم؟
smtp.UseDefaultCredentials = false; smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
کدام گزینه بایذ فعال کنم؟
تنظیمات انجام دادم ولی باز خطا میده
این ارور مربوط به ارسال ایمیل نمی باشد.
این کتابخانه را از طریق nuget نصب کنید
مشکل برطرف میشه
سلام
تو ارسال ایمیل به
smtp.Send(mm);
ایراد میگیره :
// GET: Home
public ActionResult Mail()
{
return View();
}
[HttpPost]
public ActionResult Mail(MessageModel model, List<HttpPostedFileBase> attachments)
{
using (MailMessage mm = new MailMessage(model.Email, model.To))
{
mm.Subject = model.Subject;
mm.Body = model.Body;
foreach (HttpPostedFileBase attachment in attachments)
{
if (attachment != null)
{
string fileName = Path.GetFileName(attachment.FileName);
mm.Attachments.Add(new Attachment(attachment.InputStream, fileName));
}
}
mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential(model.Email, model.Password);
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
ViewBag.Message = "Email sent.";
}
return View();
}
متن ارور هم اینه ::
System.Net.Mail.SmtpException: 'The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at'
از دو لینک زیر استفاده کنید
https://www.google.com/settings/security/lesssecureapps
2 --
http://www.smarterasp.net/support/kb/a1546/send-email-from-gmail-with-smtp-authentication-but-got-5_5_1-authentication-required-error.aspx
سلام مجدد
واقعا ممنونم ازتون
لطف کردید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)