用vs .net 2005 beta2开发简单smtp邮件程序有感
2005-09-24 21:37
519 查看
最近工作上需要给大量邮箱发email,每封信内容还不完全一样.为了偷懒,研究了一下.net2.0的System.Net.Mail ,发现跟.net1.0版本有不同.
要实现smtp发信太简单了,这里不再班门弄斧,只是现在的smtp服务器本来就少,还基本都需要登陆认证,太麻烦,看了一些文章用MailMessage.Field.Add方法实现登录认证,找了半天.net2.0中没有该方法.
(注:"大文"兄对登录认证的问题作了更正,为了大家阅读方便,这里直接给出正确的方法:应该用:
SmtpClient smtpClient = new SmtpClient("xxx.xxx.xxx.xxx");
smtpClient.Credentials = new NetworkCredential("account", "password");
smtpClient.Timeout = 100;
smtpClient.EnableSsl = false;
)
要通过网上的公开smtp服务器发邮件是不可能了.(其实是可以的,只是较慢)
于是考虑通过本地smtp服务器来群发,还是想偷懒,找了几个免费的smtp本地服务器软件.其中magic winmail4.2和musemail server2.0两个软件顺利通过测试,前者不需要作任何配置,安装完毕就可以用SmtpClient.Send方法发送邮件,记住要把Host设成本地主机127.0.0.1 .美中不足是只能30天试用期,后者需要简单的配置(勾掉"强制进行SMTP发信认证",并将SMTP绑定到127.0.0.1),但是没有时间限制.
以下提供了关键代码.
private bool sendMail(string add, string from,string subject,string content, string attachmentadd)
{
try
{
MailMessage message = new MailMessage(from,add);
if (attachmentadd != "")
{
Attachment attachment = new Attachment(attachmentadd);
message.Attachments.Add(attachment);
}
if (content != "")
{
message.BodyEncoding = Encoding.GetEncoding("GBK");
message.Body = content;
}
if (subject != "")
{
message.Subject = subject;
}
SmtpClient sc = new SmtpClient("127.0.0.1",25);
sc.Send(message);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return false;
}
return true;
}
软件编出来后遇到了一个问题,就是中文主题再一些邮箱(如eyou)中显示为乱码,且无法通过设置Encoding来解决.还有一些邮箱发送后无法收到(qianlong,tom)各位大侠帮帮忙
![](http://www.cnblogs.com/Emoticons/emcry.gif)
![](http://www.cnblogs.com/Emoticons/QQ/icon18.gif)
,看看有没有办法解决.
要实现smtp发信太简单了,这里不再班门弄斧,只是现在的smtp服务器本来就少,还基本都需要登陆认证,太麻烦,看了一些文章用MailMessage.Field.Add方法实现登录认证,找了半天.net2.0中没有该方法.
(注:"大文"兄对登录认证的问题作了更正,为了大家阅读方便,这里直接给出正确的方法:应该用:
SmtpClient smtpClient = new SmtpClient("xxx.xxx.xxx.xxx");
smtpClient.Credentials = new NetworkCredential("account", "password");
smtpClient.Timeout = 100;
smtpClient.EnableSsl = false;
)
要通过网上的公开smtp服务器发邮件是不可能了.(其实是可以的,只是较慢)
于是考虑通过本地smtp服务器来群发,还是想偷懒,找了几个免费的smtp本地服务器软件.其中magic winmail4.2和musemail server2.0两个软件顺利通过测试,前者不需要作任何配置,安装完毕就可以用SmtpClient.Send方法发送邮件,记住要把Host设成本地主机127.0.0.1 .美中不足是只能30天试用期,后者需要简单的配置(勾掉"强制进行SMTP发信认证",并将SMTP绑定到127.0.0.1),但是没有时间限制.
以下提供了关键代码.
private bool sendMail(string add, string from,string subject,string content, string attachmentadd)
{
try
{
MailMessage message = new MailMessage(from,add);
if (attachmentadd != "")
{
Attachment attachment = new Attachment(attachmentadd);
message.Attachments.Add(attachment);
}
if (content != "")
{
message.BodyEncoding = Encoding.GetEncoding("GBK");
message.Body = content;
}
if (subject != "")
{
message.Subject = subject;
}
SmtpClient sc = new SmtpClient("127.0.0.1",25);
sc.Send(message);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return false;
}
return true;
}
软件编出来后遇到了一个问题,就是中文主题再一些邮箱(如eyou)中显示为乱码,且无法通过设置Encoding来解决.还有一些邮箱发送后无法收到(qianlong,tom)各位大侠帮帮忙
![](http://www.cnblogs.com/Emoticons/emcry.gif)
![](http://www.cnblogs.com/Emoticons/QQ/icon18.gif)
,看看有没有办法解决.
相关文章推荐
- 在VS.NET 2005中调用带身份验证smtp服务器发送邮件
- 关于VS.NET 2005 外接程序开发
- vs 2005 固定asp.net程序开发服务器的 port
- Microsoft VS.NET 2005 Beta2 CHS 下载地址
- VS.NET 2005 开发微软智能手机SmartPhone Window Mobile 5.0 开发环境配置指南
- 自己做的 VS.net 2005 sp1 程序注释使用的宏代码
- VS.NET 2005 开发微软智能手机SmartPhone Window Mobile 5.0 开发环境配置指南!
- vs.net 2003 和2005中邮件发送比较
- 解决vs.net 2005下MDI程序菜单合并
- 简单快速开发C\S架构程序用最简单的不分层最快的效率达到功能要求的例子程序FrmCommnets
- VS.NET 2005 开发 Window Mobile 5.0 配置指南!
- 邮件客户端程序的简单开发
- vs2005开发程序引起的:"应用程序初始化失败"的问题
- vs.net 2005 beta2 之痛
- 【JavaMail开发总结】编写简单的发送邮件程序
- 用VS.NET 2005制作安装程序
- [转] VS.NET 2005 开发微软智能手机SmartPhone Window Mobile 5.0 开发环境配置指南
- VS.NET2005打包程序遇到不可恢复的生成错误,解决方案
- VS2013开发一个简单的asmx接口程序
- 近期开发计划:简单的邮件发送接受RCP程序