C#发送邮件
2014-01-17 16:14
218 查看
/// <summary> /// 发送邮件 /// </summary> /// <param name="to">收件人邮件地址</param> /// <param name="from">发件人邮件地址</param> /// <param name="subject">邮件主题</param> /// <param name="body">邮件内容</param> /// <param name="username">登录smtp主机时用到的用户名,注意是邮件地址'@'以前的部分</param> /// <param name="password">登录smtp主机时用到的用户密码</param> /// <param name="smtpHost">发送邮件用到的smtp主机</param> /// <returns>true-发送成功,false-发送失败</returns> public static Boolean sendMail(String to, String from, String subject, String body, String userName, String password, String smtpHost) { try { System.Net.Mail.MailAddress fromAddr = new System.Net.Mail.MailAddress(from); System.Net.Mail.MailAddress toAddr = new System.Net.Mail.MailAddress(to); System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(fromAddr, toAddr); message.Subject = subject;//设置邮件主题 message.IsBodyHtml = true;//设置邮件正文为html格式 message.Body = body;//设置邮件内容 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(smtpHost); //设置发送邮件身份验证方式 //注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com client.Credentials = new System.Net.NetworkCredential(userName, password); client.Send(message); return true; } catch { return false; } } /// <summary> /// 清除html /// </summary> /// <param name="html">字符串</param> /// <returns>无html标签的字符串</returns> public static String clearHTML(String htmlstr) { System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("<(?:.|\\s)*?>", System.Text.RegularExpressions.RegexOptions.Multiline | System.Text.RegularExpressions.RegexOptions.IgnoreCase); return reg.Replace(htmlstr, ""); } /// <summary> /// 十进制正整数转换成六十二进制 /// </summary> /// <param name="Number">需要转换的数字Int64格式,不能为负数</param> /// <param name="toBase">转换基数,必须是2至62以内</param> /// <returns>自定义的进制字符串</returns> public static String toDectoStr62(Int64 Number, Int32 toBase) { String str62 = "", Digits62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; Int64 result = Number; if (Number > 0) { while (result > 0) { Int32 val = toInt32(result % toBase); str62 = String.Format("{0}{1}", Digits62[val], str62); result = (Int64)(result / toBase); } return str62; } return "0"; } /// <summary> /// 六十二进制转换成十进制正整数 /// </summary> /// <param name="str62">自定义的进制字符串</param> /// <param name="toBase">转换基数,必须是2至62以内</param> /// <returns>返回Int64</returns> public static Int64 toDectoStr62(String str62, Int32 toBase) { String Digits62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; int length = str62.Length; Int64 result = 0; for (int i = 0; i < length; i++) { Int64 val = (Int64)Math.Pow(toBase, (length - i - 1)); Int64 tmp = Digits62.IndexOf(str62[i]); result += tmp * val; } return result; }