如何为 SMTP 进行 web.config 转换?

38

我在我的根Web.config文件中有这个设置

 <mailSettings>
     <smtp from="no-reply@test.com" deliveryMethod="SpecifiedPickupDirectory">
         <specifiedPickupDirectory pickupDirectoryLocation="C:\temp"/>
         <network host="localhost"/>
     </smtp>
 </mailSettings>
当然,当我将此应用于我的托管服务器时,我不希望它保存到硬盘,而是要发送电子邮件。
因此,我会像这样做。
<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network">
      <network host="smtp.mysite.com" userName="myuser" password="mypassword" />
    </smtp>
  </mailSettings>
</system.net>

我该如何将此配置到我的web.release.config文件中?我应该替换mailSettings吗?我真的不太了解如何进行转换。

2个回答

66

在你的 .release 文件中添加 xdt:Transform="Replace"

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" xdt:Transform="Replace">
      <network host="smtp.mysite.com" userName="myuser" password="mypassword" />
    </smtp>
  </mailSettings>
</system.net>

1
Octopus Deploy无法运行此转换。它仅适用于appSettings和connectionStrings。您知道这是否适用于Octopus Deploy吗? - Shaan
1
章鱼部署现在能够执行这个转换,我刚刚测试过。 - Ben D

2

抱歉,是的,我知道转换的问题,我想知道如何做。我会查看那篇文章。 - chobo2
@chobo2,这篇文章确实包含了如何做的内容,请接受@stack72的答案。 - Korayem
链接页面确实有答案。 - Jason
3
尽管这个链接可能回答了问题,但最好在这里包含答案的关键部分并提供参考链接。仅有链接的答案可能会因为所链接页面的更改而失效。 - jonrsharpe
链接现在已经失效了。正如预料的那样。 - markpsmith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接