前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >发送邮件程序(Csharp2005)

发送邮件程序(Csharp2005)

作者头像
Java架构师必看
发布2021-03-22 15:05:41
5850
发布2021-03-22 15:05:41
举报
文章被收录于专栏:Java架构师必看

我觉得懂得编写发送邮件客服端丰常重要.这可以把它嵌入到你的软件里加强与用户的沟通与可以收集程运行的错误信息.以与我编写一小的发送邮件客服端来与在家交流. 程序如下:

发送邮件解决方案下载

接下来,我来说一下我开发的过程与体会: 创建发送邮件客服端步骤: 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 

本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档