ASP.NET Email + WebConfig

这里演示如果把 Email provider 的资料写在 WebConfig 里和调用它. 

 

如果整个项目只需要使用一个 Email, 可以写入system.net里, 微软已经帮我们设计好了

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="Stooges Web Design Default &lt;stooges@stooges.com.my&gt;">
        <network host="mail.stooges.com.my"
                 port="587"
                 userName="stooges@stooges.com.my"
                 password="password"
                 enableSsl="false" />
      </smtp>
    </mailSettings>
  </system.net>
<configuration>

然后简单调用就可以了

SmtpClient smtp = new SmtpClient();
MailMessage mail = new MailMessage
{ 
    Subject = "subject",
    Body = "html content",
    IsBodyHtml = true
};
mail.To.Add("hengkeat87@gmail.com");
smtp.Send(mail);

 

如果有多个Email要使用,我们就得自己写webconfig然后掉用了 : 

读 webconfig 资料可以参考: http://www.cnblogs.com/keatkeat/p/5404128.html

<configuration>
  <configSections>
    <sectionGroup name="mailSettings">
      <section name="stooges" type="System.Net.Configuration.SmtpSection"/> 
    </sectionGroup>
  </configSections>
  <mailSettings>
    <stooges deliveryMethod="Network" from="Stooges Web Design&lt;stooges@stooges.com.my&gt;">
      <network host="mail.stooges.com.my"
              port="587"
              userName="stooges@stooges.com.my"
              password="password"
              enableSsl="false" />
    </stooges>
  </mailSettings>
</configuration>


SmtpClient smtp = new SmtpClient();
SmtpSection smtpSection = (SmtpSection)ConfigurationManager.GetSection("mailSettings/stooges");
SmtpNetworkElement network = smtpSection.Network;
smtp.Host = network.Host;
smtp.Port = network.Port;
smtp.EnableSsl = network.EnableSsl;
smtp.UseDefaultCredentials = network.DefaultCredentials;
smtp.Credentials = new NetworkCredential(network.UserName, network.Password);
string from = smtpSection.From; //Stooges Web Design<stooges@stooges.com.my>
int ipos = from.IndexOf("<");
string displayName = from.Substring(0, ipos);
string email = from.Substring(ipos + 1, from.Length - displayName.Length - 2);
MailMessage mail = new MailMessage
{
    From = new MailAddress(email, displayName),
    Subject = "subject",
    Body = "html content",
    IsBodyHtml = true
};
mail.To.Add("hengkeat87@gmail.com");
smtp.Send(mail);

 

posted @ 2016-04-18 16:47  兴杰  阅读(264)  评论(0编辑  收藏  举报