ASP.NET Email + WebConfig
这里演示如果把 Email provider 的资料写在 WebConfig 里和调用它.
如果整个项目只需要使用一个 Email, 可以写入system.net里, 微软已经帮我们设计好了
<configuration> <system.net> <mailSettings> <smtp deliveryMethod="Network" from="Stooges Web Design Default <stooges@stooges.com.my>"> <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<stooges@stooges.com.my>"> <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);