代码如下:
/// <summary>
///MailHelper的摘要说明
/// </summary>
public static class MailHelper
{
public static string mailServer = "smtp.foxmail.com"; //ConfigurationSettings.AppSettings["mailServer"];
public static string mailUserName = "[email protected]"; //ConfigurationSettings.AppSettings["mailUserName"];
public static string mailPassWord = "password"; //ConfigurationSettings.AppSettings["mailPassWord"];
public static bool RequireSmtpAuthentication = false; //ConfigurationSettings.AppSettings["RequireSmtpAuthentication"] == "1";
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="to">收件人EmailAddress</param>
/// <param name="from">发件人EmailAddress</param>
/// <param name="subject">主题</param>
/// <param name="body">正文</param>
/// <param name="attach">附件</param>
/// <param name="cc">抄送地址</param>
/// <param name="useHtmlFormat">使用HTML格式</param>
/// <returns>返回是否发送成功</returns>
public static string SendMail(string to, string from, string subject, string body, string attach, string cc, bool useHtmlFormat)
{
if (from == "")
{
from = "[email protected]";
}
MailMessage mailMsg = new MailMessage(from,to,subject,body);
if (ConfigurationSettings.AppSettings["EmailUseUTF8"] == "1")
{
mailMsg.BodyEncoding = Encoding.UTF8;
}
else
{
mailMsg.BodyEncoding = Encoding.Default;
}
if (attach != null && attach != "")
{
foreach (string sSubstr in attach.Split(','))
{
mailMsg.Attachments.Add(new Attachment(sSubstr));
}
}
if (cc.Length > 0)
{
mailMsg.CC.Add(cc);
}
mailMsg.IsBodyHtml = useHtmlFormat;
mailMsg.Priority = MailPriority.High; SmtpClient client = new SmtpClient(mailServer,25);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
//client.EnableSsl = true;
if (RequireSmtpAuthentication)
{
client.Credentials = new System.Net.NetworkCredential(mailUserName, mailPassWord, mailServer);
client.UseDefaultCredentials = false;
}
try
{
client.Send(mailMsg);
return "发送邮件成功。";
}
catch (Exception ex)
{
Exception source = ex;
while (source.InnerException != null)
source = source.InnerException; return "发送邮件失败!错误信息:" + source.Message;
}
} static void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
HttpContext.Current.Response.Write(e.Error.Message);
}
}
然后使用
MailHelper.SendMail("[email protected]", "", "你好", "邮件内容!", "", "", true); 调用函数,总是收到
“命令顺序不正确。 服务器响应为: Error: need EHLO and AUTH first ! ” 的错误消息,请问是怎么回事?
/// <summary>
///MailHelper的摘要说明
/// </summary>
public static class MailHelper
{
public static string mailServer = "smtp.foxmail.com"; //ConfigurationSettings.AppSettings["mailServer"];
public static string mailUserName = "[email protected]"; //ConfigurationSettings.AppSettings["mailUserName"];
public static string mailPassWord = "password"; //ConfigurationSettings.AppSettings["mailPassWord"];
public static bool RequireSmtpAuthentication = false; //ConfigurationSettings.AppSettings["RequireSmtpAuthentication"] == "1";
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="to">收件人EmailAddress</param>
/// <param name="from">发件人EmailAddress</param>
/// <param name="subject">主题</param>
/// <param name="body">正文</param>
/// <param name="attach">附件</param>
/// <param name="cc">抄送地址</param>
/// <param name="useHtmlFormat">使用HTML格式</param>
/// <returns>返回是否发送成功</returns>
public static string SendMail(string to, string from, string subject, string body, string attach, string cc, bool useHtmlFormat)
{
if (from == "")
{
from = "[email protected]";
}
MailMessage mailMsg = new MailMessage(from,to,subject,body);
if (ConfigurationSettings.AppSettings["EmailUseUTF8"] == "1")
{
mailMsg.BodyEncoding = Encoding.UTF8;
}
else
{
mailMsg.BodyEncoding = Encoding.Default;
}
if (attach != null && attach != "")
{
foreach (string sSubstr in attach.Split(','))
{
mailMsg.Attachments.Add(new Attachment(sSubstr));
}
}
if (cc.Length > 0)
{
mailMsg.CC.Add(cc);
}
mailMsg.IsBodyHtml = useHtmlFormat;
mailMsg.Priority = MailPriority.High; SmtpClient client = new SmtpClient(mailServer,25);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
//client.EnableSsl = true;
if (RequireSmtpAuthentication)
{
client.Credentials = new System.Net.NetworkCredential(mailUserName, mailPassWord, mailServer);
client.UseDefaultCredentials = false;
}
try
{
client.Send(mailMsg);
return "发送邮件成功。";
}
catch (Exception ex)
{
Exception source = ex;
while (source.InnerException != null)
source = source.InnerException; return "发送邮件失败!错误信息:" + source.Message;
}
} static void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
HttpContext.Current.Response.Write(e.Error.Message);
}
}
然后使用
MailHelper.SendMail("[email protected]", "", "你好", "邮件内容!", "", "", true); 调用函数,总是收到
“命令顺序不正确。 服务器响应为: Error: need EHLO and AUTH first ! ” 的错误消息,请问是怎么回事?
解决方案 »
- .net 使用System.IO.FileStream读取桌面的文件就会报错?---急!!--高手进来
- Cookies过期是怎么回事?
- JS中如何取后台属性值
- IIS7 URL重写符号规则问题
- 如何获得GridView中EditItemTemplate获得控件??
- 我的下拉菜单在EXT下怎么失灵了呢?
- 图片问题,网站需要保存图片的时候大家是怎么做的啊.
- 问个问题,关于由那部分程序负责发送Email?
- 如何将ASP代码转换升级为ASP.NET2.0
- 求ASP.net实现图书详细检索的算法
- 从远程数据库A读取数据,在远程数据库B上创建视图,将存储在数据库B上的视图信息显示到网页上,从而实现电子商务。这种方法是否可行,如何实现?
- 寻高手——倒计时循环倒计的问题
if (RequireSmtpAuthentication)
{
client.Credentials = new System.Net.NetworkCredential(mailUserName, mailPassWord, mailServer);
client.UseDefaultCredentials = false;
}改为例如:client.Credentials = new System.Net.NetworkCredential("*@qq.com","1234567890");
可以查看MSDN
public void SendMail()
{
try
{
MailAddress from = new MailAddress("[email protected]");
MailAddress to = new MailAddress("[email protected]");
MailMessage message = new MailMessage(from, to);
message.Subject = txtTitle.Text;//发送邮件的标题
message.Body = txtContent.Text;//发送邮件的内容
//if (FileUpload1.PostedFile.FileName != "")
//{//发送附件
// Attachment att = new Attachment(FileUpload1.PostedFile.FileName);
// message.Attachments.Add(att);
//} SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("[email protected]", "邮箱密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
message.IsBodyHtml = true; client.Send(message);
}
catch (Exception ex)
{
throw ex;
}
} //最关键的是用qq邮箱的smtp.qq.com 会报楼主的错误,换个邮箱就行了,不知道为什么