使用smtpClient发送邮件时,经常跑出难以明白的错误。其实主要都和我们申请的免费邮箱有关系。有些邮箱不支持,比如163的以前申请的帐号可以用,新注册的帐号是发不了的。
/**/
/**/
/**/
/// <summary>
/// 功能:发送邮件,返回字符串:“发送成功”否则返回错误代码。
/// 创建:2007-08-23
/// </summary>
/// <param name="MailTo">MailTo为收信人地址</param>
/// <param name="Subject">Subject为标题</param>
/// <param name="Body">Body为信件内容</param>
/// <param name="BodyFormat">BodyFormat为信件内容格式:0为Text,1为Html</param>
/// <param name="Priority">Priority为优先级:0为低,1为中,2为高</param>
/// <param name="Attachments">Attachment为附件,为null则不发送</param>
public static string SendMail(System.Collections.ArrayList MailTo, string Subject, string Body, int BodyFormat, int Priority, string Attachments)
... {
string result;
SmtpClient mail = new SmtpClient();
//发送方式
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
//smtp服务器
mail.Host = "smtp.sina.com";
//用户名凭证
mail.Credentials = new System.Net.NetworkCredential("mail_user_name", "mail_user_password");
//邮件信息
MailMessage message = new MailMessage();
//发件人
message.From = new MailAddress("mail_user_name@sina.com");
//收件人
foreach (object item in MailTo)
...{
message.To.Add(item.ToString());
}
//主题
message.Subject = Subject;
//内容
message.Body = Body;
//正文编码
message.BodyEncoding = System.Text.Encoding.UTF8;
//设置为HTML格式
message.IsBodyHtml = true;
//优先级
message.Priority = MailPriority.High;
try
...{
mail.Send(message);
result = "发送成功";
return result;
}
catch (Exception e)
...{
result = e.ToString();
}
return result;
}
/// 功能:发送邮件,返回字符串:“发送成功”否则返回错误代码。
/// 创建:2007-08-23
/// </summary>
/// <param name="MailTo">MailTo为收信人地址</param>
/// <param name="Subject">Subject为标题</param>
/// <param name="Body">Body为信件内容</param>
/// <param name="BodyFormat">BodyFormat为信件内容格式:0为Text,1为Html</param>
/// <param name="Priority">Priority为优先级:0为低,1为中,2为高</param>
/// <param name="Attachments">Attachment为附件,为null则不发送</param>
public static string SendMail(System.Collections.ArrayList MailTo, string Subject, string Body, int BodyFormat, int Priority, string Attachments)
... {
string result;
SmtpClient mail = new SmtpClient();
//发送方式
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
//smtp服务器
mail.Host = "smtp.sina.com";
//用户名凭证
mail.Credentials = new System.Net.NetworkCredential("mail_user_name", "mail_user_password");
//邮件信息
MailMessage message = new MailMessage();
//发件人
message.From = new MailAddress("mail_user_name@sina.com");
//收件人
foreach (object item in MailTo)
...{
message.To.Add(item.ToString());
}
//主题
message.Subject = Subject;
//内容
message.Body = Body;
//正文编码
message.BodyEncoding = System.Text.Encoding.UTF8;
//设置为HTML格式
message.IsBodyHtml = true;
//优先级
message.Priority = MailPriority.High;
try
...{
mail.Send(message);
result = "发送成功";
return result;
}
catch (Exception e)
...{
result = e.ToString();
}
return result;
}
示例:
html:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="mail.aspx.cs" Inherits="mail"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< table style ="width: 268px" >
< tr >< td >
< asp:Label ID ="Label4" runat ="server" Text ="发件人:" ></ asp:Label ></ td >
< td >
< asp:TextBox ID ="TBMailFrom" runat ="server" ></ asp:TextBox ></ td ></ tr >
< tr >
< td style ="width: 101px" >
< asp:Label ID ="Label1" runat ="server" Text =" 收件人:" ></ asp:Label ></ td >
< td >
< asp:TextBox ID ="TBMailTo" runat ="server" ></ asp:TextBox ></ td >
</ tr >
< tr >
< td style ="width: 101px" >
< asp:Label ID ="Label2" runat ="server" Text ="邮件主题:" ></ asp:Label ></ td >
< td >
< asp:TextBox ID ="TBSubject" runat ="server" ></ asp:TextBox ></ td >
</ tr >
< tr >< td colspan ="2" >
< asp:FileUpload ID ="FileUpload1" runat ="server" Width ="259px" /></ td >
</ tr >
< tr >
< td colspan ="2" >
< asp:Label ID ="Label3" runat ="server" Text ="邮件正文:" ></ asp:Label ></ td >
</ tr >
< tr >
< td colspan ="2" >
< asp:TextBox ID ="TBDescript" runat ="server" Height ="97px" TextMode ="MultiLine" Width ="247px" ></ asp:TextBox ></ td >
</ tr >
< tr >
< td colspan ="2" >
< asp:Button ID ="BSend" runat ="server" OnClick ="BSend_Click" Text ="发送" /></ td >
</ tr >
</ table >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< table style ="width: 268px" >
< tr >< td >
< asp:Label ID ="Label4" runat ="server" Text ="发件人:" ></ asp:Label ></ td >
< td >
< asp:TextBox ID ="TBMailFrom" runat ="server" ></ asp:TextBox ></ td ></ tr >
< tr >
< td style ="width: 101px" >
< asp:Label ID ="Label1" runat ="server" Text =" 收件人:" ></ asp:Label ></ td >
< td >
< asp:TextBox ID ="TBMailTo" runat ="server" ></ asp:TextBox ></ td >
</ tr >
< tr >
< td style ="width: 101px" >
< asp:Label ID ="Label2" runat ="server" Text ="邮件主题:" ></ asp:Label ></ td >
< td >
< asp:TextBox ID ="TBSubject" runat ="server" ></ asp:TextBox ></ td >
</ tr >
< tr >< td colspan ="2" >
< asp:FileUpload ID ="FileUpload1" runat ="server" Width ="259px" /></ td >
</ tr >
< tr >
< td colspan ="2" >
< asp:Label ID ="Label3" runat ="server" Text ="邮件正文:" ></ asp:Label ></ td >
</ tr >
< tr >
< td colspan ="2" >
< asp:TextBox ID ="TBDescript" runat ="server" Height ="97px" TextMode ="MultiLine" Width ="247px" ></ asp:TextBox ></ td >
</ tr >
< tr >
< td colspan ="2" >
< asp:Button ID ="BSend" runat ="server" OnClick ="BSend_Click" Text ="发送" /></ td >
</ tr >
</ table >
</ div >
</ form >
</ body >
</ html >
cs:
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
public partial class mail : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
}
protected void BSend_Click(object sender, EventArgs e)
...{
//MailAddress from = new MailAddress(TBMailFrom.Text);
//MailAddress to = new MailAddress(TBMailTo.Text);
//MailMessage message = new MailMessage(from, to);
//message.Subject = TBSubject.Text;
//message.Body = TBDescript.Text;
//if (FileUpload1.PostedFile.FileName != "")
//{
// Attachment att = new Attachment(FileUpload1.PostedFile.FileName);
// message.Attachments.Add(att);
//}
//SmtpClient client = new SmtpClient("smtp.126.com");
//client.Send(message);
SmtpClient mail = new SmtpClient();
mail.DeliveryMethod = SmtpDeliveryMethod.Network; //发送方式
mail.Host = "smtp.sina.com"; //指定smtp服务器
mail.Credentials = new System.Net.NetworkCredential("fengjingbo88", "123456"); //用户凭证
MailMessage message = new MailMessage();//邮件信息
message.From = new MailAddress("fengjingbo88@sina.com"); //发件人
message.To.Add(TBMailTo.Text); //收件人
message.Subject = TBSubject.Text; //邮件主题
message.Body = TBDescript.Text;//邮件内容
message.BodyEncoding = System.Text.Encoding.UTF8; //正文编码
message.IsBodyHtml = true;//设置为HTML格式
message.Priority = MailPriority.High;//设置优先级
try
...{
mail.Send(message);
Response.Write("发送成功");
}
catch (Exception ex)
...{
Response.Write(ex.Message.ToString());
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
public partial class mail : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
}
protected void BSend_Click(object sender, EventArgs e)
...{
//MailAddress from = new MailAddress(TBMailFrom.Text);
//MailAddress to = new MailAddress(TBMailTo.Text);
//MailMessage message = new MailMessage(from, to);
//message.Subject = TBSubject.Text;
//message.Body = TBDescript.Text;
//if (FileUpload1.PostedFile.FileName != "")
//{
// Attachment att = new Attachment(FileUpload1.PostedFile.FileName);
// message.Attachments.Add(att);
//}
//SmtpClient client = new SmtpClient("smtp.126.com");
//client.Send(message);
SmtpClient mail = new SmtpClient();
mail.DeliveryMethod = SmtpDeliveryMethod.Network; //发送方式
mail.Host = "smtp.sina.com"; //指定smtp服务器
mail.Credentials = new System.Net.NetworkCredential("fengjingbo88", "123456"); //用户凭证
MailMessage message = new MailMessage();//邮件信息
message.From = new MailAddress("fengjingbo88@sina.com"); //发件人
message.To.Add(TBMailTo.Text); //收件人
message.Subject = TBSubject.Text; //邮件主题
message.Body = TBDescript.Text;//邮件内容
message.BodyEncoding = System.Text.Encoding.UTF8; //正文编码
message.IsBodyHtml = true;//设置为HTML格式
message.Priority = MailPriority.High;//设置优先级
try
...{
mail.Send(message);
Response.Write("发送成功");
}
catch (Exception ex)
...{
Response.Write(ex.Message.ToString());
}
}
}