这让我很紧张,因为我找不到不工作的理由。如果我在 web.config 中指定使用 SMTP,我有一个 mvcMailer 代码可以工作。不过我不想使用 SMTP,我想使用 drop 文件夹。这是执行发送的代码的一部分:
[HttpPost]
public ActionResult Edit(Deviation deviation, int[] Epost)
{
if (ModelState.IsValid)
{
db.Entry(deviation).State = EntityState.Modified;
db.SaveChanges();
if (Epost != null)
{
var myEpost = from p in db.Users
where Epost.Contains(p.UserID)
select p;
myEpost.ToList();
var subject = deviation.Benamning;
var body = deviation.KortBeskrivning;
var avId = deviation.DeviationId;
foreach (var item in myEpost)
{
var mailer = new UserMailer();
var msg = mailer.DeviationMessage(email: item.Epost, body: body, subject: subject, name: item.Name, avId: avId);
msg.Send();
}
}
return RedirectToAction("Index");
//return RedirectToAction("Index");
}
return View(deviation);
}
如果 web.config 文件配置如下,则此代码有效:
<smtp from="user@domain.com">
<network enableSsl="false" host="192.168.111.11" port="25" userName="user@domain.com" password="password" />
</smtp>
但是这些替代方法都不起作用,它们都给出相同的错误(未指定 SMTP 主机):
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\mailroot\pickup"/>
</smtp>
<smtp from="user@domain.com" deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\mailroot\pickup"/>
</smtp>
值得注意的是,我猜无论如何都会在放置文件夹中创建一个文件,尽管有错误。我只是不知道出了什么问题,根据我在 mvcmailer 上找到的内容,这是要使用的正确配置。