分配票证时发送电子邮件通知-ASP.NET MVC#
我希望在通过邮件向用户分配票证时通知他/她。 管理员基本上有一个打开票据的视图和一个包含用户的下拉列表。一旦分配了票证,用户应在其邮箱中收到通知 我尝试了以下操作,但一直遇到错误: 值不能为空。分配票证时发送电子邮件通知-ASP.NET MVC#,c#,asp.net-mvc,C#,Asp.net Mvc,我希望在通过邮件向用户分配票证时通知他/她。 管理员基本上有一个打开票据的视图和一个包含用户的下拉列表。一旦分配了票证,用户应在其邮箱中收到通知 我尝试了以下操作,但一直遇到错误: 值不能为空。 参数名称:地址 在Mail.To参数上 负责分配的代码如下所示: public async Task<ActionResult> AssignRoles(AssignRolesModel ObjAssign, Registration registration) { try
参数名称:地址 在
Mail.To
参数上
负责分配的代码如下所示:
public async Task<ActionResult> AssignRoles(AssignRolesModel ObjAssign, Registration registration)
{
try
{
if (ObjAssign.ListofUser == null)
{
TempData["MessageErrorRoles"] = "No Tickets to assign";
ObjAssign.ListofAdmins = _IAssignRoles.ListofAdmins();
ObjAssign.ListofUser = _IAssignRoles.ListofUser();
return View(ObjAssign);
}
var SelectedCount = (from User in ObjAssign.ListofUser
where User.SelectedUsers == true
select User).Count();
if (SelectedCount == 0)
{
TempData["MessageErrorRoles"] = "You have not Selected any Ticket to Assign";
ObjAssign.ListofAdmins = _IAssignRoles.ListofAdmins();
ObjAssign.ListofUser = _IAssignRoles.GetListofUnAssignedUsers();
return View(ObjAssign);
}
if (ModelState.IsValid)
{
ObjAssign.CreatedBy = Convert.ToInt32(Session["SuperAdmin"]);
_IAssignRoles.SaveAssignedRoles(ObjAssign);
}
ObjAssign = new AssignRolesModel
{
ListofAdmins = _IAssignRoles.ListofAdmins(),
ListofUser = _IAssignRoles.GetListofUnAssignedUsers()
};
MailMessage mail = new MailMessage();
mail.To.Add(registration.EmailID);
mail.Subject = "Help Desk";
mail.IsBodyHtml = true;
using (var smtp = new SmtpClient())
{
await smtp.SendMailAsync(mail);
smtp.UseDefaultCredentials = false;
}
TempData["MessageRoles"] = "Ticket Assigned Successfully!";
return RedirectToAction("AssignRoles");
}
catch (Exception)
{
throw;
}
}
确保registration.Email不为空/空 另外,我认为您可以像这样直接将电子邮件传递给MailMessage
if(!string.IsNullOrEmpty(registration.EmailID))
{
var email = new MailMessage(from, registration.EmailID);
}
或者,如果您想坚持您的代码:
if(!string.IsNullOrEmpty(registration.EmailID))
{
MailMessage mail = new MailMessage();
mail.To.Add(registration.EmailID);
}
我想你可能需要“更新”邮件。在使用之前?或者直接将MailAddress传递给MailMessage。并确保registration.Email不为空。因此,请查看并调试代码<代码>注册。EmailID为
null
。您提供的代码很好。它解决了空电子邮件id的问题,但没有解决向用户发送通知的主要问题。我收到一个警报“ticket successfully assigned”,但没有发送任何ticket。您仍然没有向我们提供足够的信息。你没有例外吗?你能给我们看一下你的smtp配置吗?这个问题是由这个字段mail.To.Add(registration.EmailID)引起的代码>如果我将其替换为实际电子邮件,则该操作成功,否则不会运行任何操作。没有遇到任何异常那么你有一个验证问题,对吗?如果你允许用户输入无效的电子邮件,它将无法工作,就这么简单。添加验证并使用它完成:)
if(!string.IsNullOrEmpty(registration.EmailID))
{
MailMessage mail = new MailMessage();
mail.To.Add(registration.EmailID);
}