发送邮件程序(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
发送邮件程序(Csharp2005)相关推荐
- JavaMail实现发送邮件程序
1.JavaMail的介绍 1.1 什么是JavaMail JavaMail,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我 ...
- 软测_2执行发送邮件程序的回归测试
题目 什么是回归测试: 回归测试: Regression Test 不是属于测试阶段. (测试阶段: 单元测试, 集成测试, 系统测试, 验收测试) 当发现了缺陷,并且缺陷得到了解决,解决方案提交到了 ...
- 发送邮件程序报错454 Authentication failed以及POP3和SMTP简介
一.发现问题 在测试邮件发送程序的时候,发送给自己的QQ邮箱,程序报错454 Authentication failed, please open smtp flag first. 二.解决问题 进入 ...
- 关于服务器上发送邮件程序发送失败的解决方案
安装McAfee后,Foxmail无法发送邮件,提示服务器积极拒绝! 2010-08-19 16:44 麦咖啡是一款不错的杀毒软件,但是,刚安装后,按照默认设置,在使用的过程中,会出现一些问题,如Fo ...
- 使用163邮箱发送邮件报错(554, b'DT:SPM 163 smtp3,G9xpCgCHi5RJOFVemMZ4Dw--.348S3 1582643274,please see http://ma
使用python编写发送邮件程序出现以下错误: 问题出现在代码中关于信件收发人的格式部分,需要将message中的From和To改成以下的格式: message['From'] = "xxx ...
- C# 发送邮件方法2
C# 发送邮件方法2 一. 发送邮件程序:(使用System.Web.Mail下的类) public static bool SendMail(string mailhead, string mail ...
- ubuntu 16.04 email 发送邮件
Ubuntu安装发送邮件程序 apt-get install heirloom-mailx vim /etc/s-nail.rc 再最后加入 在最后加入: set from=0000@qq.com s ...
- java邮件抄送_Java发送邮件遇到的常见需求汇总
基于SMTP发送一个简单的邮件 首先,需要一个认证器: package No001_基于SMTP的文本邮件; import javax.mail.Authenticator; import javax ...
- 邮件发送程序(添加附件发送)
目标:实现一个基于Web的可以发送附件的邮件程序.(涉及的知识点:文件上传+邮件发送) 知识点引入: 文件上传:开发的Web应用是基于HTTP协议的,工作在Request/Response模式下.在这 ...
最新文章
- HDOJ 1914 The Stable Marriage Problem
- 45个纯 CSS 实现的精美边框效果【附演示和源码】【上篇】
- AndroidRichText 让Textview轻松的支持富文本(图像ImageSpan、点击效果等等类似QQ微信聊天)...
- 139. Word Break
- 第一章:Java语言概述
- 计算输入序列能组成三角形的个数
- matlab 去除pdf文档水印
- c++ 二次开发 良田高拍仪_六枝特良田LYV-850加工中心导轨配套防护罩日常维修
- 洛谷P4445题解(Java语言描述)
- JEECG 社区开源项目下载(总览)
- 从一个故事开始谈项目与团队管理
- 织梦 html5视频显示问题,织梦网站HTML5 video视频播放器(不用安装插件)
- dw属性面板 的HTML,Dreamweaver中AP Div属性面板
- git 删除分支_深入浅出图解Git,入门到精通(保姆级教程)
- rust腐蚀机场蓝卡_rust怎么弄蓝卡和红卡
- 华为认证 HCNACloud 云计算题库
- vue组件中使用预览ofd文件、上传预览ofd文件、下载ofd文件
- Flink操作——状态与容错
- TRY HACK ME |RELEVANT「渗透测试挑战」
- [渝粤教育] 石家庄铁道大学 理论力学 参考 资料
热门文章
- mysql plsql 循环_PL/SQL for...loop循环语句
- linux系统桌面缺色,红旗系统如何用?
- java datasource mysql_Java MysqlDataSource類代碼示例
- 使用Python,OpenCV从静态背景中提取移动前景
- Python,OpenCV图像金字塔cv2.pyrUp(), cv2.pyrDown()
- 和12岁小同志搞创客开发:手撕代码,点亮LED灯
- PCB天线无线模组如何布局摆放?
- 并发编程之多进程编程(python版)
- 【Vue版】实现拖拽、排序效果(注意,这个方法在chrome谷歌浏览器上面不适用,dragend会情不自禁触发drag事件先执行,有点像浏览器的一个bug)
- ATS中用到的sscanf高级用法说明