C# log4net smtp附加程序不发送电子邮件

C# log4net smtp附加程序不发送电子邮件,c#,log4net,smtpappender,C#,Log4net,Smtpappender,我正在尝试实现log4net来发送电子邮件。 以下是我的代码,但它不发送电子邮件 及 在AssemblyInfo.cs中 [assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)] 这就是我创建日志对象的方式 private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.

我正在尝试实现log4net来发送电子邮件。
以下是我的代码,但它不发送电子邮件



在AssemblyInfo.cs中

 [assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)]
这就是我创建日志对象的方式

  private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
此配置适用于文件输出,即RollingFileAppender,但不适用于SmtpAppender

N我从互联网上尝试了许多解决方案,但都没有真正的帮助


请告诉我正确的方向。提前感谢:)

我正在使用一个非常类似的附加器来向Gmail发送SMTP邮件,但在我的情况下,我使用了一个不同的端口:

<port value="587"/>


所有其他设置都是相同的,因此请尝试一下,看看它是否适合您。这是Gmail用于TLS的端口。

请参阅我的工作示例。如果您在GMail中使用双因素身份验证,请不要忘记生成密码并在此处使用:

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <to value="****" />
  <from value="****" />
  <subject value="Crash log" />
  <smtpHost value="smtp.gmail.com" />
  <authentication value="Basic" />
  <port value="587" />
  <username value="****" />
  <password value="****" />
  <bufferSize value="10" />
  <EnableSsl value="true"/>
  <lossy value="true" />
  <threshold value="DEBUG" />
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="WARN"/>
  </evaluator>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date{dd/MM/yyyy hh:mm:ss.fff}&#9;%-5level&#9;%-15logger&#9;%message%newline" />
  </layout>
</appender>


希望能有帮助

对于那些遇到SmtpAppender问题的人,我建议将以下内容放入appSettings节点

<appSettings>
  <add key="log4net.Internal.Debug" value="true"/>
</appSettings>

您的配置文件中的SMTP设置是什么样的?您是否可以显示您需要的配置部分
SMTP.Appender
“不发送电子邮件”非常非常模糊。问题可能在很多地方。第一步是使用可以控制的SMTP主机。这将把问题缩小到是否使用appender与SMTP主机是否拒绝邮件。(这是一个很大的区别。)尝试使用类似smtp4dev()的东西作为本地SMTP主机来测试记录器是否至少在做您认为它正在做的事情。据我所知,Gmail只支持加密连接上的SMTP。我怀疑普通的stmp appender能否证明这一点。我只是用自己的gmail帐户测试了我的答案,它使用log4net appender C#.NET 4.0 VS2010工作,所以我不确定为什么我的答案对你没有帮助。我将我的答案标记为删除祝你好运还需要看看你的代码背后是什么样子的,关于你如何发送你的凭据。你的问题也看起来像是你没有得到正确的记录器名称,例如
var log=LogManager.GetLogger(“SMTPAppender”)
那么您也需要这样做来阅读配置
log4net.Config.XmlConfigurator.Configure()我有同样的问题。。。你在哪里看到这个。。。输出diagnostics@Ziggler在VisualStudio输出窗口中
log4net: Setting Property [From] to String value [tomas@kodi.is]
log4net: Setting Property [Subject] to String value [Kodiak OMS Shortcode service]
log4net: Setting Property [SmtpHost] to String value [mail.sip.is]
log4net: Setting Property [Port] to Int32 value [25]
log4net: Setting Property [BufferSize] to Int32 value [1]
log4net: Setting Property [EnableSsl] to Boolean value [True]
log4net: Setting Property [Threshold] to Level value [DEBUG]
log4net: Setting Property [Lossy] to Boolean value [False]
log4net: Converter [message] Option [] Format  [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Setting Property [ConversionPattern] to String value [%utcdate [%level] - %message%newline%exception]
log4net: Converter [utcdate] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [level] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [literal] Option [] - ] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [exception] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Setting Property [Layout] to object [log4net.Layout.PatternLayout]
log4net: Created Appender [EmailLog]
log4net: Adding appender named [EmailLog] to logger [EmailLogger].
log4net: Hierarchy Threshold []
log4net:ERROR [SmtpAppender] ErrorCode: GenericFailure. Error occurred while sending e-mail notification.
System.Net.Mail.SmtpException: Server does not support secure connections.
   at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
   at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
   at System.Net.Mail.SmtpClient.GetConnection()
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at log4net.Appender.SmtpAppender.SendEmail(String messageBody)
   at log4net.Appender.SmtpAppender.SendBuffer(LoggingEvent[] events)