如何在.config文件中设置log4net SmtpAppender发件人名称

时间:2014-01-23 07:15:24

标签: c# smtp log4net

我试图找到这个小问题的解决方案很长一段时间但找不到答案。

我想设置发件人使用log4net SmtpAppender发送的电子邮件的名称,但我无法弄清楚如何。

这是我的log4net appender配置:

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <to value="sender@sending.com" />
  <from value="receiver@receiving.rom" />
  <subject value="test logging message" />
  <smtpHost value=" ... " />
  <authentication value="Basic" />
  <port value="587" />
  <bufferSize value="1" />
  <username value=" ... " />
  <password value=" ... " />
  <EnableSsl value="true"/>
  <lossy value="true" />
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="FATAL"/>
  </evaluator>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
  </layout>
</appender>

它有效,但是当我收到电子邮件时,发件人的名称是“from”参数中@的前面的任何内容,在本例中为“sender”(如它是sender@sending.com)。

我想要的是一个自定义名称,让我们说 Notifier ,但仍然继续发送自sender@sending.com

我尝试了不同的参数(只是随机猜测,因为我在搜索网络时找不到任何好的想法)...比如from_name或sender_name ...没有用......

这是我关于SO的第一个问题,希望我符合所有标准,有人可以帮助我:)。

干杯

1 个答案:

答案 0 :(得分:8)

SmtpAppender (Line 469)使用new MailAddress(m_from)附加地址,该地址接受电子邮件地址。幸运的是,您可以在地址字段中指定一个名称,在MSDN的备注部分中说明。

电子邮件格式:

Notifier <sender@sending.com>

Log4net XML配置示例:

<from value="Notifier &lt;sender@sending.com&gt;" />