vivek gupta Ответов: 1

Как отправить электронную почту с помощью верификации asp.ne MVC


я пытаюсь отправить подтверждение электронной почты с помощью этого кода ,он не дает никаких ошибок, но электронные письма не отправляются. Я также установил свой gmail разрешить менее безопасные приложения: ВКЛ.

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Web.Hosting;
using System.Web.Mvc;
using xyz.Models;
using PagedList;
using PagedList.Mvc;

    [HttpPost]

        public ActionResult Signup(string textbox1emailid, string textbox1name, string textbox1pass ,  string Create)
        {
            var checkdb = db.xyz.Where(x => x.emailid == textbox1emailid).FirstOrDefault();
            if (checkdb == null)
            {
                xyz xyz = new xyz();
                xyz.emailid = textbox1emailid.ToString();
                xyz.name = textbox1name.ToString();
                xyz.password = textbox1pass.ToString();
                xyz.emailconfirmed = 0;
                db.datatables.Add(xyz);
                db.SaveChanges();
                
           
            string body = System.IO.File.ReadAllText(HostingEnvironment.MapPath("~/EmailTemplate/") + "Text" + ".cshtml");
            var regInfo = db.xyz.Where(x => x.id == xyz.id).FirstOrDefault();
            string regem = db.xyz.Where(x => x.id == xyz.id).Select(x => x.emailid).FirstOrDefault();
            var url = "http://xyz.com/" + "xyz/Confirm?regem="+ regem;
            
            body = body.Replace("@ViewBag.ConfirmationLink", url);
            body = body.ToString();
            string from = "xyz@gmail.com";           
            string to, bcc, cc, subject, body1;
             string sendTo = regInfo.emailid;
            to = sendTo.Trim();
            bcc = "";
            cc = "";
            subject = "Activate your Account";
            StringBuilder sb = new StringBuilder();
            sb.Append(body);
            body1 = sb.ToString();
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress(from);
            mail.To.Add(new MailAddress(to));
            if (!string.IsNullOrEmpty(bcc))
            {
                mail.Bcc.Add(new MailAddress(bcc));
            }
            if (!string.IsNullOrEmpty(bcc))
            {
                mail.Bcc.Add(new MailAddress(cc));
            }
            mail.Subject = subject;
            mail.Body = body1;
            mail.IsBodyHtml = true;           
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.gmail.com";
            client.Port = 587;
            client.EnableSsl = true;
            client.UseDefaultCredentials = false;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Credentials = new System.Net.NetworkCredential("xyz@gmail.com","password");
            try
            {
                client.Send(mail);

               return RedirectToAction("check");
            }
            catch (Exception ex) { return RedirectToAction("Details"); }
            return RedirectToAction("Details");
        }
     
}
            else { Session["message"] = "Emailid already exists";
                return View("Signin");
            }
  }

F-ES Sitecore

Этот вопрос задают ежедневно. Google для получения списка проблем, которые вы будете иметь при отправке электронной почты через gmail, очень маловероятно, что ваша проблема является чем-то новым. Однако окончательный ответ заключается в том, чтобы вообще не отправлять электронную почту через gmail, а использовать SMTP-сервер, предоставленный вашим сетевым администратором или веб-хостингом.

vivek gupta

хорошо спасибо

vivek gupta

спасибо за ваш ответ

1 Ответов

Рейтинг:
8

ZurdoDev

Как уже упоминалось в F-ES Sitecode, ваш код выглядит нормально, а это значит, что вам нужно посмотреть на другие варианты того, почему gmail блокирует его.

Однажды это случилось со мной, я вошел в gmail и получил уведомление о том, что внешнее приложение хочет отправить электронную почту через эту учетную запись, и я смог нажать кнопку Разрешить.