在winform里面怎样直接发送邮件 请问在winform里面怎样直接发送邮件?我试过http://topic.csdn.net/t/20020807/12/928108.html这种方法,没有什么反应,有人成功的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在一般都是用smtpClient参考:http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx不过你需要指定一个smtp server. 谢谢楼上的。我忘了说,我使用的是VS2003,里面根本就找不到using System.Net.Mail命名空间。请问还有没有其他的思路?谢谢! 2003你可以使用smtpmail。不过你依然需要一个smtpserverhttp://msdn.microsoft.com/en-us/library/system.web.mail.smtpmail.aspx 我觉得其实smtpmail和SmtpClient就是对CDO.Message的封装。有的时候出错的异常中会有CDO.Message的字样。 #region 發送郵件 /// <summary> /// 發送郵件 /// </summary> /// <param name="hostName">SMTP服務器地址</param> /// <param name="userName">用戶名</param> /// <param name="password">密碼</param> /// <param name="title">郵件標題</param> /// <param name="content">內容</param> /// <param name="from">發件人地址</param> /// <param name="to">收件人地址</param> /// <returns>是否成功</returns> private static bool SendMail(string hostName, string userName, string password, string title, string content, string from, string to) { SmtpClient smtp = new SmtpClient(); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.EnableSsl = true; smtp.Host = hostName; smtp.Credentials = new System.Net.NetworkCredential(userName, password); MailMessage message = new MailMessage(from, to); message.Subject = title; message.Body = content; message.BodyEncoding = Encoding.UTF8; message.IsBodyHtml = true; message.Priority = MailPriority.High; try { smtp.Send(message); return true; } catch { return false; } } public static bool SendMail(string title, string content, string to) { return SendMail(mailHost, mailUserName, mailPassword, title, content, mailUrl, to); } #endregion-- Web.Config <!-- 郵件發送配置 --> <add key="MailHost" value="122728DC5B40A2ABF8951A4D700C1313"/> <add key="MailUserName" value="17C26FCE794860A1ED982DF24F98F0CA"/> <add key="MailPassword" value="63FB98EA280285721CF5D5D56184BAF0"/> <add key="MailUrl" value="17C26FCE794860A1E4B5124D481DD4CF0C71CA0EFD31E11AD50FCC820109F143"/> 非常谢谢楼上各位的热心和耐心。不过我想再强调一下我的问题“请问在winform里面怎样直接发送邮件? ”。楼上的都是在web中发送邮件。 我给你的连接里面的sample code可不是web 程序。是一个Console application.smtpmail和SmtpClient都可以再Winform中使用。 装个.net 2.0以上或者改用System.web.mail 谢谢findcaiyzh。我使用VS2003时没有找到“using System.Web.Mail;”命名空间,在VS2005中可以找到。但以前的系统是在VS2003中做的,只能在这个版本里面改进。 不好意思,看错了。你要添加引用System.Web 不好意思,不明白。没有using System.Web.Mail命名空间,就没有MailMessage类,所有的操作都没法做啊。 在项目的右键菜单中点击 Add Reference.net页下选择System.Web点击Ok这样你才可以using System.Web.Mail 我发的是一个通用的方法啊,WEBFORM和WINFORM都可以用的.... { MailMessage Message = new MailMessage(); Message.From = "[email protected]"; Message.To = "[email protected]"; Message.Subject = "Kevin Email Subject"; Message.Body = "Kevin Email Body"; Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", @"XXX"); Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "XXX"); try { SmtpMail.SmtpServer = "XXX.XXX.com.cn"; SmtpMail.Send(Message); } catch(System.Web.HttpException ehttp) { Console.WriteLine("{0}", ehttp.Message); Console.WriteLine("Here is the full error message output"); Console.Write("{0}", ehttp.ToString()); } } catch(IndexOutOfRangeException) { Console.WriteLine("Send Mail error"); } Console.ReadLine();尴尬结贴。感谢findcaiyzh,给分先。 使用http://msdn.microsoft.com/en-us/library/system.web.mail.smtpmail.aspx 代码并不能完全解决问题,需要在中间添加3行验证身份的代码。使用163作服务器并不能发送成功,使用公司服务器才可以,为什么这样继续研究中......希望高手也可以继续指点。 求一段完整的数据采集代码。 datagridview的单元格里面能否嵌套一个表 C#更新数据库的一个问题 SqlDataAdapter 可以用来执行存储过程吗? SQL里的DateTime类型处理,求教 想在杭州找工作的进来看看 简单提问一下 可以用c#开发B/S程序吗? 导入一幅图片到Form中,怎么才能实现图片的拖拽、旋转和放大缩小? 大哥快来救小的一命啊?!!!明天下班前结贴给分。 sms.dll文件 求助。。急
参考:
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx不过你需要指定一个smtp server.
http://msdn.microsoft.com/en-us/library/system.web.mail.smtpmail.aspx
有的时候出错的异常中会有CDO.Message的字样。
#region 發送郵件
/// <summary>
/// 發送郵件
/// </summary>
/// <param name="hostName">SMTP服務器地址</param>
/// <param name="userName">用戶名</param>
/// <param name="password">密碼</param>
/// <param name="title">郵件標題</param>
/// <param name="content">內容</param>
/// <param name="from">發件人地址</param>
/// <param name="to">收件人地址</param>
/// <returns>是否成功</returns>
private static bool SendMail(string hostName, string userName, string password, string title, string content, string from, string to)
{
SmtpClient smtp = new SmtpClient();
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = true;
smtp.Host = hostName;
smtp.Credentials = new System.Net.NetworkCredential(userName, password); MailMessage message = new MailMessage(from, to);
message.Subject = title;
message.Body = content;
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Priority = MailPriority.High; try
{
smtp.Send(message);
return true;
}
catch
{
return false;
}
}
public static bool SendMail(string title, string content, string to)
{
return SendMail(mailHost, mailUserName, mailPassword, title, content, mailUrl, to);
}
#endregion-- Web.Config <!-- 郵件發送配置 -->
<add key="MailHost" value="122728DC5B40A2ABF8951A4D700C1313"/>
<add key="MailUserName" value="17C26FCE794860A1ED982DF24F98F0CA"/>
<add key="MailPassword" value="63FB98EA280285721CF5D5D56184BAF0"/>
<add key="MailUrl" value="17C26FCE794860A1E4B5124D481DD4CF0C71CA0EFD31E11AD50FCC820109F143"/>
smtpmail和SmtpClient都可以再Winform中使用。
不好意思,看错了。你要添加引用System.Web
.net页下选择System.Web点击Ok
这样你才可以using System.Web.Mail
我发的是一个通用的方法啊,WEBFORM和WINFORM都可以用的....
{
MailMessage Message = new MailMessage();
Message.From = "[email protected]";
Message.To = "[email protected]";
Message.Subject = "Kevin Email Subject";
Message.Body = "Kevin Email Body";
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", @"XXX");
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "XXX");
try
{
SmtpMail.SmtpServer = "XXX.XXX.com.cn";
SmtpMail.Send(Message);
}
catch(System.Web.HttpException ehttp)
{
Console.WriteLine("{0}", ehttp.Message);
Console.WriteLine("Here is the full error message output");
Console.Write("{0}", ehttp.ToString());
}
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("Send Mail error");
} Console.ReadLine();尴尬结贴。感谢findcaiyzh,给分先。
使用http://msdn.microsoft.com/en-us/library/system.web.mail.smtpmail.aspx 代码并不能完全解决问题,需要在中间添加3行验证身份的代码。使用163作服务器并不能发送成功,使用公司服务器才可以,为什么这样继续研究中......希望高手也可以继续指点。