如何使用数据库Asp中的电子邮件地址在Postal上发送电子邮件.净MVC

本文关键字:电子邮件 MVC Postal 数据库 何使用 Asp 电子邮件地址 | 更新日期: 2023-09-27 18:15:39

我目前已经实现了邮政,我用它来发送电子邮件在我的MVC应用程序。我遇到的问题是,我想从数据库中检索电子邮件地址,而不是硬编码我想发送电子邮件的地址。

给一点背景,我想在哪里实现这个。创建订单后,我希望向链接到该订单的医院发送电子邮件地址。

这是我尝试过的,但是它抛出了一个异常在这一行email.To = order.Hospital.Email; -它确实工作,如果我硬编码电子邮件地址,例如,email.To = "hospital@hospital.com".

类型为'System '的异常。NullReferenceException'发生在在用户代码

中未处理

我已经将它包含在我的Create POST method中,以便它在模型保存后触发。

电子邮件地址保存为字符串在我的医院模型。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "OrderID,HospitalID,StaffID,Date,Time,Expected_Date")] Order order)
{
    if (ModelState.IsValid)
    {
        order.StaffID = 5;
        db.Orders.Add(order);
        db.SaveChanges();
        dynamic email = new Email("Example");
        email.To = order.Hospital.Email; // this is where you set the email you are sending to. 
        email.Send();
        Success(string.Format("<i class='fa fa-plus-circle'></i> Please Add your Items!", order.OrderID), true);
        return RedirectToAction("Details", new { id = order.OrderID });
    }

    ViewBag.HospitalID = new SelectList(db.Hospitals, "HospitalID", "Name", order.HospitalID);
    Danger("<i class='fa fa-warning'></i> Error!", true);
    return View(order);
}

有人能解决这个问题吗?我将非常感激,并提前感谢!

如果需要任何额外的信息,请让我知道,我会添加到问题中。

医院模型:

public class Hospital
{
    public int HospitalID { get; set; }
    public string Name { get; set; }
    public string Province { get; set; }
    public string Email { get; set; }
    public string Phone_Number { get; set; }

    public virtual ICollection<Order> Orders { get; set; }
}
}

如何使用数据库Asp中的电子邮件地址在Postal上发送电子邮件.净MVC

你可以这样做:

order.StaffID = 5;
db.Orders.Add(order);
db.SaveChanges();
//select hospital from database.
Hospital hospital = db.Hospitals.First(h => h.HospitalId == order.HospitalId);
dynamic email = new Email("Example");
email.To = hospital.Email; // this is where you set the email you are sending to. 
email.Send();