我有一个用 c# 编写的应用程序,我正在尝试使用 Nlog 来处理日志记录和电子邮件通知。我的日志记录没有问题,但我似乎对电子邮件处理有很大的问题。
按照他们在 wiki 中的建议,我安装了 Nlog Mailkit 并根据说明进行了配置,添加了目标和规则。这是我的配置文件现在的样子:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<extensions>
<add assembly="NLog.MailKit"/>
</extensions>
<variable name="myvar" value="myvalue"/>
<targets>
<target
xsi:type="Mail"
name="errMail"
subject="test"
to="me@domain.com"
from="my_acct@gmail.com"
smtpUserName="my_acct@gmail.com"
enableSsl="true"
smtpPassword="pwd"
smtpAuthentication="Basic"
smtpServer="smtp.gmail.com"
smtpPort="587"
/>
</targets>
<rules>
<!-- add your logging rules here -->
<logger name="*" level="Error" writeTo="errMail" />
</rules>
</nlog>
作为一个简单的测试,这是我的 C# 代码:
namespace ConsoleApp1
{
class Program
{
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
try
{
Logger.Error("error test");
}
catch (Exception ex)
{
}
}
}
}
当我运行它时,似乎什么都没有发生……没有电子邮件,什么都没有。如果我用文件交换目标,我会得到一个日志文件,所以我知道它通常可以工作。
作为另一个测试,我添加了一些简单的代码来直接发送电子邮件:
var fromAddress = new MailAddress("my_acct@gmail.com", "From Name");
var toAddress = new MailAddress("me@domain.com", "To Name");
const string fromPassword = "pwd";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
smtp 测试工作正常,所以理论上从我的桌面访问 gmail 或通过 gmail 发送电子邮件没有问题......所以我只能假设在 nlog 或呼叫的配置中一定有我做错了。 ..但我不知道是什么。
我最初试图通过我公司的 smtp 服务器发送,但认为可能有一些访问问题阻止我这样做,所以我换成 gmail 认为它会更简单。
我已经做了所有我能做的研究,我正在努力寻找可能是什么问题......帮助!!!