1、编写一个通用的邮件发送操作类:MailHelper.cs,代码如下: ~~~ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mail; /// <summary> ///MailHelper 的摘要说明 /// </summary> public class MailHelper { public MailHelper() { // //TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 邮件发送操作 /// </summary> /// <param name="Addressee">收件人地址</param> /// <param name="From">发件人地址</param> /// <param name="sendpassword">发件人密码</param> /// <param name="Copy">抄送人地址</param> /// <param name="secret">密送人地址</param> /// <param name="Subject">发送主题</param> /// <param name="Attachment">附件信息</param> /// <param name="Body">邮件内容</param> public string SendeEmail(string Addressee, string From, string sendpassword, string Copy, string secret, string Subject, string Attachment, string Body) { MailMessage objMailMessage; MailAttachment objMailAttachment; // 创建邮件消息 objMailMessage = new MailMessage(); //发件人EMAIL objMailMessage.From = From;//源邮件地址 //收件人EMAIL objMailMessage.To = Addressee; //目的邮件地址 //邮件抄送 objMailMessage.Cc = Copy; //邮件misong objMailMessage.Bcc = secret; //邮件主题 objMailMessage.Subject = Subject; //发送邮件的标题 //邮件内容 objMailMessage.Body = Body;//发送邮件的内容 // 创建一个附件对象 if (Attachment != "") { objMailAttachment = new MailAttachment(Attachment);//发送邮件的附件 c:\\test.txt objMailMessage.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中 } //接着利用SMTP来发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本 //基本权限 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //用户名 string name = From.Substring(0, From.IndexOf('@')); objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", name); //密码 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", sendpassword); //如果没有上述三行代码,则出现如下错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 554 : Client host rejected: Access denied //SMTP地址 string smtp = "smtp." + From.Substring(From.IndexOf('@') + 1); SmtpMail.SmtpServer = "smtp." + From.Substring(From.IndexOf('@') + 1); //开始发送邮件 try { SmtpMail.Send(objMailMessage); return "邮件发送成功!"; } catch (System.Net.Mail.SmtpException ex) { return ex.Message; } //核心代码结束 } } ~~~ 2、Web页面中使用及调用示例,代码如下: ~~~ <%@ Page Language="C#" AutoEventWireup="true" CodeFile="MailSendDemo.aspx.cs" Inherits="demo_MailSendDemo" ValidateRequest="false" %> <!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> <script language="javascript" type="text/javascript"> //获取附件 function getAttachFile() { var file_value = document.getElementById("File1").value; document.getElementById("HiddenField1").value = file_value; } </script> </head> <body> <form id="form1" runat="server"> <div> 发给:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> 抄送:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /> 密送:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br /> 主题:<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox><br /> 内容:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br /> 附件:<input id="File1" type="file" /> <br /> <asp:Button ID="btnSend" runat="server" Text="发送" OnClientClick="getAttachFile()" OnClick="btnSend_Click" /><br /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> </div> <asp:HiddenField ID="HiddenField1" runat="server" /> </form> </body> </html> ~~~ string a = mails.SendeEmail(TextBox1.Text, "你的邮箱号", "邮箱密码", TextBox2.Text, TextBox4.Text, TextBox5.Text, filePath, TextBox3.Text); 这里的在你实际使用的时候,替换成你的发送方邮箱账号和密码即可。 ~~~ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class demo_MailSendDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnSend_Click(object sender, EventArgs e) { //实例邮件帮助类,并进行邮件发送 MailHelper mails = new MailHelper(); string filePath = HiddenField1.Value; string a = mails.SendeEmail(TextBox1.Text, "你的邮箱账号", "邮箱密码", TextBox2.Text, TextBox4.Text, TextBox5.Text, filePath, TextBox3.Text); Label1.Text = a; } } ~~~