发送邮件程序(Csharp2005)
我觉得懂得编写发送邮件客服端丰常重要.这可以把它嵌入到你的软件里加强与用户的沟通与可以收集程运行的错误信息.以与我编写一小的发送邮件客服端来与在家交流.
程序如下:
发送邮件解决方案下载
接下来,我来说一下我开发的过程与体会:
创建发送邮件客服端步骤:
1.创建Smtp服务器.
2.创建发件人,与收件人邮箱地址.
3.创建发送信息.
4.建件发送附件.
1.Smtp服务器,可用本地的也可以用其它的可用有Smtp服务器.如。smtp.126.com;smtp163.com.
需要注意的时:
(1)如果用本的的,本地要装Smtp用服也就是系统组件,默认没有安装。
(2)如果用邮件服务商的,你要有其上面的帐号与密码,即你要申请个邮箱,做为的身份认证。
(3)smtp类初始化时只能用IP而不能用用务器名称。因为我个人觉得,一般提供邮件服务都有好几台服务器。你在CMD 命令行里,ping smtp.126.com,在不同时候返回不同的IP。这个问题找了很久才发觉。所在在程序里要用先得到,Smtp服务器的IP列表,然后用PING 命令判断那个可用。然后再用此IP来初始化Smtp服务类。
取得SMTP服务器列表.
http://xuanfeng.cnblogs.com/archive/2006/05/15/400158.html(此连接是有我一编写的一个取得网络信息的解决方案可以查找服务器的IP地址的列表.)
IPAddress[] IpAddress = Dns.GetHostEntry(ServerName).AddressList;
Ping ping = new Ping();
PingReply pingReply = null;
//取得smt服务器可用的IP
foreach (IPAddress IP in IpAddress)
{
pingReply = ping.Send(IP);
if (pingReply.Status == IPStatus.Success)
{
ip = IP.ToString();
break;
}
}
SmtpClient_my = new SmtpClient(ip, Port);
2.创建发件人,与收件人邮箱地址.
MailAddress_from = new MailAddress(Tb_Email_from.Text, Tb_Print.Text);
MailAddress_to = new MailAddress(Tb_Email_to.Text);
3.创建发送信息
MailMessage_my = new MailMessage();
MailMessage_my.Subject = Tb_Content.Text;
MailMessage_my.ReplyTo = MailAddress_from;
MailMessage_my.Sender = MailAddress_from;
MailMessage_my.From = MailAddress_from;
MailMessage_my.To.Add(MailAddress_to);
4.建件发送附件.
Attachment_my = new Attachment(path, MediaTypeNames.Application.Octet);
注意要控制附件的大小,因为很多邮件服务商附件大小都是有限件的。
FileStream FileStream_my = new FileStream(path, FileMode.Open);
string name = FileStream_my.Name;
int size = (int)(FileStream_my.Length / 1024);
//控制文件大小不大于10M
if (size > 10240)
{
MessageBox.Show("文件长度不能大于10M!你选择的文件大小为{0}", size.ToString());
return;
}
FileStream_my.Close();
5。发送后事件处理。
创建事件
SmtpClient_my.SendCompleted += new SendCompletedEventHandler(SmtpClient_my_SendCompleted);
事件处理函数。
void SmtpClient_my_SendCompleted(object sender, AsyncCompletedEventArgs e)
{
if (e.Cancelled)
{ MessageBox.Show("发送已取消!"); }
if (e.Error != null)
{
MessageBox.Show(e.UserState.ToString() + "发送错误:" + e.Error.Message, "发送错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("邮件成功发出!", "恭喜!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
#endre
相关文章:

reindex-maven 私服(nexus)架设以及项目管理中遇到的问题及解决方案(updating)
--- 用maven 的过程中 大问题小问题实在是不少 ,就不一篇文章一篇文章的写了,干脆写在一起 ---- ------- nexus 加索引 点击Administration菜单下面的Repositories,将这三个仓库Apache Snapshots,Codehaus Snapshotsÿ…
爬了20W+条猫咪交易数据,它不愧是人类团宠
作者 | 叶庭云来源 | 修炼Python头图 | 下载于视觉中国前言看到可爱的猫咪表情包,总是会忍不住收藏,晒部分图如下:认识的一些朋友也养了猫,比如橘猫、英短、加菲猫之类的,看他们发朋友圈撸猫,老羡慕了&…

数据中心建设“优劣”在于这几个关键问题
数据中心的建设是一个整体结构,任何一个细节规划忽略都有可能导致问题的发生,规划设计的优劣,也只有在系统运行后才能做客观的评估,很多问题要经过较长时间,甚至是设备或系统的一个生命周期内才能暴露出来。因此&#…

如何有效的使用C#读取文件
你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的…

eclipse 默认jdk 的设置 eclipse.ini -vm 参数
2019独角兽企业重金招聘Python工程师标准>>> eclipse 的配置文件 eclipse.ini 不仅仅可以设置eclipse的堆栈内存大小,也可设置默认使用的jdk版本。 一、现有个eclipse 默认启动jdk版本是jdk1.5,需更改为1.6 步骤如下: 方法1&#…
用韩信三技能,讲清楚一致性哈希
作者 | 悟空聊架构来源 | 悟空聊架构头图 | 下载于视觉中国韩信点兵的成语来源淮安民间传说。常与多多益善搭配,寓意越多越好。我们来看下主公刘邦和韩信大将军的对话。刘邦:“你觉得我可以带兵多少?”韩信:“最多十万。”刘邦不解…

有计划地开放数据 促进大数据法规落地
5月1日起,《贵阳市政府数据共享开放条例》正式实施。 《条例》的出台,仅仅是我市大数据发展步入法治轨道的开始。如何更好地让《条例》实现落地,成为新的课题。 2017年1月18日,贵阳市政府数据开放平台正式上线。目前,平…

C#中Base64之编码,解码方法
编码 public string EncodeBase64(string code_type,string code) { string encode ""; byte[] bytes Encoding.GetEncoding(code_type).GetBytes(code); try { encode Convert.ToBase64String(bytes); } catch { encode code; } return encode; }…
自回归与非自回归模型如何兼得?预训练模型BANG或许可解
作者 | 齐炜祯、宫叶云、段楠来源 | 微软研究院AI头条头图 | 下载于视觉中国编者按:近两年,预训练技术的发展极大地提高了自然语言生成的效果,但随着数据量和模型大小的增加,模型在使用时的推断耗时也随之变大。为了降低自回归生成…

STL--自定义类型的排序
STL的排序太坑了,尤其是在VS2010上重载sort函数的第三个比较参数的时候。 invalid operator < 这个错在写多关键字排序的时候就没有停止过。 本来想查书解决,结果各种重载都试了还是不行,百度才知道是因为:strict weak orderin…

《树莓派Python编程指南》——2.3 小结
本节书摘来自华章计算机《树莓派Python编程指南》一书中的第2章,第2.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.3 小结 我们的Python快速导览到此为止。希望这些程序能…
十年沉浮,用Python看创业公司消亡史
作者 | 叶庭云来源 | 修炼Python头图 | 下载于视觉中国前言IT桔子有一个新经济死亡公司数据库:https://www.itjuzi.com/deathCompany,统计了2000-2020年之间比较出名的公司 "死亡" 数据。"死亡公司数据库" 的公司关闭时间是依据公开…

.NET下正则表达式应用的四个示例
1.确认有效电子邮件格式 下面的代码示例使用静态 Regex.IsMatch 方法验证一个字符串是否为有效电子邮件格式。如果字符串包含一个有效的电子邮件地址,则 IsValidEmail 方法返回 true,否则返回 false,但不采取其他任何操作。您可以使用 IsVali…

static的本质
通过反编译发现,static的本质是abstract sealed。因此,无法继承System.Math类,因为它是static的。转载于:https://www.cnblogs.com/Benjamin/p/3319856.html

Sunrun2016年Q3财务业绩强劲 冲刺全年目标
美国第二大住宅太阳能光伏系统安装商Sunrun,第三季度业绩表现强劲,促使该公司提高其今年的部署前景。Sunrun也采用当下流行的零首付商业模式,从而获取长期收益。 Sunrun2016年Q3财务业绩强劲 冲刺全年目标责任编辑:editor006 作者…

tcpdump移植和使用
tcpdump移植和使用[摘要]:本文主要讲解了tcpdump相关概念和主要参数的使用,并通过事例来讲解tcpdump的用法,最后讲解如何将其移植到嵌入式开发环境,使其在嵌入式主控板中发挥其强大功能。一. tcpdump概念tcpdump就是dump the traf…

在ASP.NET中自动给URL地址加上超链接
作为一个程序员,在完成设计后还要根据程序的情况以及用户的反映不断对程序进行改进,这样才能不断地完善自己的作品。我在制作完软件商务网 http://www.bizsofts.com 的论坛后,发现人们总喜欢在帖子中加上各种有用的URL链接或Email地址。而我当…

释放联接新价值,华为提出“1+N”5G目标网,推动运营商构筑四大数字化转型的核心能力
近日,在MWCS 2021 媒体分析师预沟通会上,华为常务董事、运营商BG总裁丁耘发表了主题为《点亮未来,释放联接新价值》的主题演讲,提出华为将立足联接,通过持续的技术与商业创新,为客户创造价值,为…

光伏电价断崖式下跌 企业遭遇成长烦恼
在弃光限电严重、补贴欠发(三年缺口将达600亿元)、用地问题突显的情况之下,近日,2017年光伏上网电价将酝酿下调近三成,新“四座大山”将蚕食新能源企业的利润。 协合新能源 在香港上市的协合新能源却在不利情况下逆势扩张,营收从2…

asp.net2.0如何加密数据库联接字符串
asp.net2.0如何加密数据库联接字符串 在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下: 1.添加密钥 执行:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis -pc "hnlaw" -exp 其中"hnlaw"为密钥名…
机器学习 KNN算法实践
作者 | 叶庭云来源 | 修炼Python头图 | 下载于视觉中国KNN算法简介KNN(K-Nearest Neighbor)最邻近分类算法是数据挖掘分类(classification)技术中常用算法之一,其指导思想是"近朱者赤,近墨者黑"&…

【生活随想】实习结束以及开始校园招聘
我发现很多时候我处理事情的思维是局限的!就拿前几天辞职的事情来说吧,我原打算直接向公司辞职,但后来听同学说“还是先试着向公司请假比较好”,不用细想也是,如果公司同意我请假,我还能给自己留一条后路&a…

《21世纪机器人》一一第1章 他用自己的思想打造机器人
第1章 他用自己的思想打造机器人 我在前面说过,这本书的结尾是吉米站在后台,准备闪亮登场,这是他的首次亮相。当我把吉米的这张照片发给我太太时,她很快回复:“这真的是用你的思想打造出的机器人!ÿ…
牛年快乐~新一年从甜蜜的烘焙里学AI
作者 | 神经小兮来源 | HyperAI超神经头图 | 下载于视觉中国经过数千年的积累,人类已经开发出了各色美味,但我们的味蕾却永远不知满足。谷歌一位 AI 开发者,为了探索新的可能,用 AI 来开发新的甜点食谱。AI 在菜谱开发这一领域&am…

Datalist控件,Repeater控件如何分页?
Asp.net提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分页功能。相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显…

java List集合中contains方法总是返回false
ArrayList的contains方法 java 今天在用ArrayList类的caontains方法是遇到了问题,我写了一个存放User类的ArrayList 但在调用list.contains(user)时总是返回false。 去看了下ArrayList的源码,源码如下: Java代码 public boolean contains…

营销自动化的4大预测分析错误
预测分析是数字营销的新领域。许多专家已经讨论了将预测分析与营销自动化工具(如HubSpot和Marketo)合并的好处。 将预测分析整合到用户的营销自动化策略中可能非常有益,但也很难执行。以下是可能会阻止其实施的一些常见的错误: 1.…

Prolog学习:数独和八皇后问题
上一篇简单介绍了下Prolog的一些基本概念,今天我们来利用这些基本概念解决两个问题:数独和八皇后问题。 数独 数独是一个很经典的游戏: 玩家需要根据nn盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列…
每年节省170万美元的文档预览费用,借助机器学习的DropBox有多强?
【CSDN 编者按】Dropbox 借助机器学习的预测功能,每年能为公司节省了一百多七十多万美元的基础架构成本。非常了不起的成就。本文,一起来看一看 Dropbox 采用机器学习的经过,以及分析一下其中的利弊。译者 | 弯月 责编 | 张文出品 | CSDN&a…

asp.net 对xml文件的读写,添加,修改,删除操作
asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using…