Net.SmtpClient的一些功能 最近用SmtpClient做邮件发送的功能,已经做到了发送的类,现在遇到一个这样的问题,如何获取发送成功后的信息?比如我发送后是否被视为垃圾邮件,还有发送过程中有没有错误,比如帐号不正确。或者帐号不存在这种情况,求高手帮忙解答。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实你就是想判断邮件的发送状态public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { } } public void SendEmail() { string from = "[email protected]"; //发送方邮箱 MailMessage newEmail = new MailMessage(); #region 发送方邮件 newEmail.From = new MailAddress(from, from); #endregion #region 发送对象,可群发 newEmail.To.Add(new MailAddress("[email protected]")); //接收方邮箱一 //newEmail.To.Add(new MailAddress("[email protected]")); //接收方邮箱二 //newEmail.To.Add(new MailAddress("[email protected]")); //newEmail.To.Add(new MailAddress("[email protected]")); //newEmail.To.Add(new MailAddress("[email protected]")); //newEmail.To.Add(new MailAddress("[email protected] ")); //newEmail.To.Add(new MailAddress("[email protected]")); //newEmail.To.Add(new MailAddress("[email protected]")); #endregion #region Subject newEmail.Subject = TextBox1.Text; //标题 #endregion #region Body string strBody = "<p><b>邮件群发测试,邮件测试内容</b></p>"; //html格式,也可以是普通文本格式 newEmail.Body = strBody; //内容 #endregion #region 上传附件 // Attachment MsgAttach = new Attachment(this.FileUpload1.PostedFile.FileName);//可通过一个FileUpload地址获取附件地址 //newEmail.Attachments.Add(MsgAttach); #endregion #region Deployment newEmail.IsBodyHtml = true; //是否支持html newEmail.Priority = MailPriority.High; //优先级 #endregion //发送方服务器信息 SmtpClient smtpClient = new SmtpClient(); smtpClient.UseDefaultCredentials = true; smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "zhoukeqiangcxh"); smtpClient.Host = "smtp.163.com"; //主机 //smtpClient.Send(newEmail); //同步发送,程序将被阻塞 #region 异步发送, 会进入回调函数SendCompletedCallback,来判断发送是否成功 smtpClient.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);//回调函数 string userState = "测试"; smtpClient.SendAsync(newEmail, userState); #endregion } private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if (e.Cancelled) //邮件发送被取消 { Console.WriteLine("发送被取消!"); } if (e.Error != null) //邮件发送失败 { Console.WriteLine("发送失败!"); } else //发送成功 { Console.WriteLine("发送成功!"); } } protected void Button1_Click(object sender, EventArgs e) { SendEmail(); } } 发送成功,就是SmtpClient发送出去了,但是并不保证对方能收到。你把消息发送给一个服务器去,服务器接受了消息并且开始排队等候处理消息,这就算发送成功。但是可能过了几分钟,服务器才发觉下一个站的目标服务器不存在(联系不上),或者目标用户在邮件用户列表中根本没有等等,这时候服务器会尝试跟发送这个消息的服务器反过来通信。但是SmtpClient根本没有实现完整的邮件服务协议,它只是实现了把消息发送给你要访问的Smtp服务器的协议(而此时smtp服务器只是把消息放到自己的磁盘上等待调用,还根本没有跟目标服务器联系呢)。 你所说的那些要求,根本做不到。就算能做到,也不是smtp协议的事情,而是开发一个完整的邮件服务器系统的事情。 一个和搜索引擎相关的问题 请问如何实现网页最大化,类似F11的效果。 高手进!!!!应用程序池自动回收内存。。。 IBatis.Net的问题 给点建议哈 业务设计=有关GRIDVIEW 上的问题 请问在WEB应用程序里能弹出WIN应用程序窗口吗? 请问哪位熟悉网上支付接口开发的请与我联系. nopcommerce依赖注入不了 ASP.NET 中根据经纬度怎样获取附近的数据 datalist怎么得到一个值!求神们帮帮我 如果关闭客户端cookie,session是否任然可以使用,为什么?如果不可以,为什么?如果可以,如何使用?
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ }
}
public void SendEmail()
{
string from = "[email protected]"; //发送方邮箱
MailMessage newEmail = new MailMessage(); #region 发送方邮件
newEmail.From = new MailAddress(from, from);
#endregion #region 发送对象,可群发
newEmail.To.Add(new MailAddress("[email protected]")); //接收方邮箱一
//newEmail.To.Add(new MailAddress("[email protected]")); //接收方邮箱二
//newEmail.To.Add(new MailAddress("[email protected]"));
//newEmail.To.Add(new MailAddress("[email protected]"));
//newEmail.To.Add(new MailAddress("[email protected]"));
//newEmail.To.Add(new MailAddress("[email protected] "));
//newEmail.To.Add(new MailAddress("[email protected]"));
//newEmail.To.Add(new MailAddress("[email protected]"));
#endregion #region Subject
newEmail.Subject = TextBox1.Text; //标题
#endregion #region Body
string strBody = "<p><b>邮件群发测试,邮件测试内容</b></p>"; //html格式,也可以是普通文本格式
newEmail.Body = strBody; //内容
#endregion #region 上传附件
// Attachment MsgAttach = new Attachment(this.FileUpload1.PostedFile.FileName);//可通过一个FileUpload地址获取附件地址
//newEmail.Attachments.Add(MsgAttach);
#endregion #region Deployment
newEmail.IsBodyHtml = true; //是否支持html
newEmail.Priority = MailPriority.High; //优先级
#endregion //发送方服务器信息
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "zhoukeqiangcxh");
smtpClient.Host = "smtp.163.com"; //主机 //smtpClient.Send(newEmail); //同步发送,程序将被阻塞 #region 异步发送, 会进入回调函数SendCompletedCallback,来判断发送是否成功
smtpClient.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);//回调函数
string userState = "测试";
smtpClient.SendAsync(newEmail, userState);
#endregion } private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
if (e.Cancelled) //邮件发送被取消
{
Console.WriteLine("发送被取消!");
}
if (e.Error != null) //邮件发送失败
{
Console.WriteLine("发送失败!");
}
else //发送成功
{
Console.WriteLine("发送成功!");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
SendEmail();
}
}