无需在c#中提供NetworkCredentials即可发送邮件

时间:2011-04-26 09:42:59

标签: c# asp.net asp.net-mvc c#-4.0

我想知道是否可以在不提供网络凭据的情况下发送邮件?感谢

3 个答案:

答案 0 :(得分:2)

除非您在受信任的网络上,否则您几乎肯定需要在某处指定凭据。但是,如果您不想在代码中构造NetworkCredentials对象,则可以在web.config中配置用户名和密码。

<system.net>
 <mailSettings>
  <smtp>
   <network 
         host="smtp.example.com" 
         port="portNumber"
         userName="username"
         password="password" />
  </smtp>
 </mailSettings>
</system.net>

答案 1 :(得分:1)

它只适用于允许匿名发送的服务器。如果您的服务器是这样的服务器,请检查

答案 2 :(得分:0)

通常,邮件服务器仅接受其本地帐户的邮件,除非您授权为本地用户,否则不允许转发到其他域。

您可以通过查找邮件服务器(使用DNS中的MX域记录)并使用SMTP直接发送,向任何地址发送电子邮件。这通常由邮件服务器完成。您可以设置自己的邮件服务器,允许从您的IP地址(您的应用程序使用的地址)中继,并且您可以发送电子邮件到任何邮箱。