【问题标题】:How to set log4net SmtpAppender sender name in .config file如何在 .config 文件中设置 log4net SmtpAppender 发件人名称
【发布时间】:2014-01-23 07:15:23
【问题描述】:

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

我想设置我使用 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>

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

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

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

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

干杯

【问题讨论】:

  • 据我所知,log4net 文档logging.apache.org/log4net/release/sdk/… 似乎没有这样的属性
  • 是的,我也注意到了,但我几乎不敢相信这是不可能的,因为 SMTP 应该允许正常设置。也许 log4net 团队只是忘记了它,但是……嗯……
  • 在我工作的地方,我们使用足够好的电子邮件地址作为名称。例如这里有几个:DatabaseSpaceAlert@xyz.com; ShippingManager@xyz.com.
  • 我很高兴听到这个消息,Eric...但不幸的是,这并没有让我们更接近解决方案 :) 虽然这不是世界末日 :)

标签: c# smtp log4net


【解决方案1】:

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

电子邮件格式:

Notifier <sender@sending.com>

Log4net XML 配置示例:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2014-04-18
    • 2014-01-15
    相关资源
    最近更新 更多