【问题标题】:c# mvc confirmation emailc# mvc 确认邮件
【发布时间】:2019-02-25 16:15:55
【问题描述】:

我正在尝试发送带有链接(代码)的确认电子邮件,以便新注册用户确认他们的电子邮件,这是我正在使用的代码,有人看到它有什么问题吗?我使用托管凭据,它们在其他方法上正常工作。

public class Cls_SendMail
{
    public Cls_SendMail(string mailid, string message, string subject)
    {
        try
        {
            MailMessage objmail = new MailMessage();
            objmail.To.Add(mailid);
            objmail.From = new MailAddress(ConfigurationManager.AppSettings["FROMEMAIL"].ToString());
            objmail.Subject = subject;
            string Body;
            Body = message;
            objmail.Body = Body;
            objmail.IsBodyHtml = true;

            SmtpClient smtp = new SmtpClient();
            smtp.UseDefaultCredentials = false;
            smtp.EnableSsl = false;
            smtp.Host = "mail.host.com";
            smtp.Port = 587; // 465; //Gmail works on this port
            smtp.Timeout = 100000;
            smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["FROMEMAIL"], ConfigurationManager.AppSettings["FROMPWD"]);
            smtp.Send(objmail);
        }
        catch (Exception)
        {

        }
    }
}


 var Token = (from p in context.webpages_Memberships where p.UserId == model.Id select p.ConfirmationToken).FirstOrDefault();
            var resetLink = "<a href='" + Url.Action("ConfirmAccount", "SignUp", new { un = model.Id, rt = Token }, "http") + "' style='color: #28BDF2;'>"+confirm+"</a>";

            string csspath = "http://localhost:50467/EmailHTML/stylesheets/email.css";
            string readFile = reader.ReadToEnd();
            string myString = "";
            UsersContext dbcontext = new UsersContext();
            var username = string.Empty;
            var user = dbcontext.UserProfiles.Find(model.Id);
            if (user!=null)
            {
                username = user.UserName;
            }
            myString = readFile;
            myString = myString.Replace("%{#{CssPath}#}%", csspath);
            myString = myString.Replace("%{#{Name}#}%", model.FirstName);
            myString = myString.Replace("%{#{UserName}#}%", username);
            myString = myString.Replace("%{#{ConfirmLink}#}%", resetLink);
            string subject = acountconfirm;
            string body = myString;
            try
            {
                //call for send mail
                Cls_SendMail mail = new Cls_SendMail(model.Email, body, subject);
                TempData["Message"] = Resource.mailhassent;
            }
            catch (Exception )
            {
                TempData["Message"] = Resource.Erroroccurredwhilesendingemail;
            }

【问题讨论】:

  • 你能添加你得到的异常消息吗?
  • 还有什么问题?它是否发送邮件?你为什么要写一个空的try/catch?如果您在没有任何日志记录的情况下抑制异常消息,您怎么知道这段代码是否有错误?
  • 顺便说一句。将Catch 块留空绝不是一个好习惯。
  • 我添加了异常前,我忘了删除,原来没有它。
  • 电子邮件没有到达,凭据正在工作。调试器没有损坏..

标签: c# model-view-controller


【解决方案1】:

经过数小时的思考,ive realized i havent 在 web.config 中设置凭据

解决方案:检查 webconfig。

【讨论】:

  • 如果是简单的疏忽或印刷错误,您应该删除问题。
猜你喜欢
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 2011-09-19
  • 2016-08-10
  • 1970-01-01
  • 2013-09-19
  • 2014-10-20
相关资源
最近更新 更多