これが機能しない理由が見つからないため、これはかなり神経質になっています。SMTPを使用するようにweb.configで指定すると機能するmvcMailerコードがあります。SMTP は使いたくありませんが、ドロップ フォルダを使用したいのです。これは、送信を行うコードの一部です。
[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 で見つけたものに基づいて、これが使用する正しい構成です。