前言:OA自动发送邮件的程序不好使,SQL Server 存储过程邮件发送程序好使,但是不利于标准化和维护,于是觉得是适合找些“轮子”武装一下。想起之前学习过System.Net.Mail ,于是再次重温一下。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Net;
  6. using System.Net.Mail;
  7. using DevComponents.DotNetBar;
  8.  
  9. namespace SendMailSystem
  10. {
  11. class MailSendClass
  12. {
  13. string mto; //收件人地址
  14. string mfrom; //发件人地址
  15. string mtitle; //邮件标题
  16. string mbody; //邮件内容
  17. string msmtp; //SMTP地址
  18. string msmtpuid; //发件人用户名
  19. string msmtppwd; //发件人密码
  20. string mattach; //附件内容
  21.  
  22. /// <summary>
  23. /// 邮件发送参数值
  24. /// </summary>
  25. /// <param name="mailto">收件人地址</param>
  26. /// <param name="mailfrom">发件人地址</param>
  27. /// <param name="mailtitle">邮件标题</param>
  28. /// <param name="mailbody">邮件内容</param>
  29. /// <param name="mailattch">附件内容</param>
  30. /// <param name="smtp">SMTP地址</param>
  31. /// <param name="smtpuid">发件人用户名</param>
  32. /// <param name="smtppwd">发件人密码</param>
  33. public void MailSend(string mailto, string mailfrom, string mailtitle, string mailbody,string mailattch,string smtp, string smtpuid, string smtppwd)
  34. {
  35. mto = mailto;
  36. mfrom = mailfrom;
  37. mtitle = mailtitle;
  38. mbody = mailbody;
  39. msmtp = smtp;
  40. msmtpuid = smtpuid;
  41. msmtppwd = smtppwd;
  42. mattach = mailattch;
  43. }
  44.  
  45. public void mSend()
  46. {
  47. SmtpClient client = new SmtpClient(msmtp); //实例化 Smtp发送服务器 类
  48. client.DeliveryMethod = SmtpDeliveryMethod.Network; //通过远程SMTP服务器传送邮件,这里的network表示你要使用的远程SMTP服务器。
  49. client.UseDefaultCredentials = true; //Smtp服务器需要验证
  50. client.Credentials = new NetworkCredential(msmtpuid, msmtppwd); //验证 发件人账号和密码
  51.  
  52. //MailMessage mmsg = new MailMessage(new MailAddress(mfrom), new MailAddress(mto)); //单个发送时
  53. MailMessage mmsg = new MailMessage(); //实例化 Smtp客户端 类
  54.  
  55. mmsg.Priority = MailPriority.High;//邮件优先级
  56. mmsg.From = ));//收件方看到的邮件来源,可以修改接收地址
  57.  
  58. //mmsg.CC.Add(mto);//邮件的抄送者,支持群发,多个邮件地址之间用 半角逗号 分开
  59. mmsg.To.Add(mto); //邮件的收件者
  60. mmsg.Subject = mtitle; //邮件标题
  61. mmsg.SubjectEncoding = Encoding.UTF8;
  62. mmsg.Body = mbody; //正文
  63. mmsg.IsBodyHtml = true; //邮件正文是否是HTML格式
  64. mmsg.BodyEncoding = Encoding.UTF8;
  65. mmsg.IsBodyHtml = true;
  66.  
  67. if (mattach != "")
  68. {
  69. , mattach.ToString().Length - ).Split(',');
  70. ; i < arrayS.Length; i++)
  71. {
  72. mmsg.Attachments.Add(new Attachment(arrayS[i].ToString()));
  73. }
  74. }
  75. try
  76. {
  77. client.Send(mmsg);
  78. MessageBoxEx.Show("邮件发送成功!");
  79. }
  80. catch (Exception e)
  81. {
  82. MessageBoxEx.Show("邮件发送失败:\n" + e.Message);
  83. }
  84. }
  85. }
  86. }

Class Code

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using DevComponents.DotNetBar;
  10.  
  11. namespace SendMailSystem
  12. {
  13. public partial class Form1 : Office2007Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19.  
  20. private void Form1_Load(object sender, EventArgs e)
  21. {
  22.  
  23. }
  24.  
  25. private void buttonX1_Click(object sender, EventArgs e)
  26. {
  27. MailSendClass classl = new MailSendClass();
  28. string mailaddress = "";
  29. )
  30. {
  31. ; i < listBox1.Items.Count; i ++ )
  32. {
  33. mailaddress += listBox1.Items[i].ToString() + ",";
  34. }
  35. }
  36. classl.MailSend(mailto1.Text, mailfrom1.Text, mailtitle1.Text, mailbody1.Text, mailaddress, smtp1.Text, smtpuid1.Text, smtppwd1.Text);
  37. classl.mSend();
  38. }
  39.  
  40. private void buttonX2_Click(object sender, EventArgs e)
  41. {
  42.  
  43. string resultFile = "";
  44.  
  45. OpenFileDialog openFileDialog1 = new OpenFileDialog();
  46. openFileDialog1.InitialDirectory = "D:\\Patch";
  47. openFileDialog1.Filter = "All files (*.*)|*.*";
  48. openFileDialog1.FilterIndex = ;
  49. openFileDialog1.RestoreDirectory = true;
  50. if (openFileDialog1.ShowDialog() == DialogResult.OK)
  51. resultFile = openFileDialog1.FileName;
  52.  
  53. if (resultFile != "")
  54. {
  55. //mattach1.Text += resultFile + ",";
  56. listBox1.Items.Add(resultFile);
  57. }
  58.  
  59. //ListViewItem li = new ListViewItem();
  60. //li.Text = resultFile;
  61. //li.SubItems.Add(resultFile);
  62. //listViewEx1.Items.Add(li);
  63.  
  64. }
  65.  
  66. private void buttonX3_Click(object sender, EventArgs e)
  67. {
  68. //if (mattach1.Text.ToString() != "")
  69. //{
  70. //string[] arrayS = mattach1.Text.ToString().Substring(0, mattach1.Text.ToString().Length-1).Split(',');
  71. //for (int i = 0; i < arrayS.Length; i++)
  72. //{
  73. // MessageBoxEx.Show(arrayS[i].ToString());
  74. //}
  75. //}
  76.  
  77. )
  78. {
  79. string mailaddress = "";
  80. )
  81. {
  82. ; i < listBox1.Items.Count; i++)
  83. {
  84. mailaddress += listBox1.Items[i].ToString() + ",";
  85. }
  86. }
  87. MessageBoxEx.Show(mailaddress);
  88. }
  89. }
  90.  
  91. private void buttonX4_Click(object sender, EventArgs e)
  92. {
  93. )
  94. {
  95. )
  96. {
  97. listBox1.Items.RemoveAt(listBox1.SelectedIndex);
  98. }
  99. }
  100. }
  101.  
  102. private void buttonX5_Click(object sender, EventArgs e)
  103. {
  104. )
  105. {
  106. listBox1.Items.Clear();
  107. }
  108. }
  109. }
  110. }

最后,上图。

System.Net.Mail 邮件发送示例的更多相关文章

  1. System.Net.Mail邮件发送抄送附件(多个)

    /// <summary> /// 邮件发送抄送附件 /// </summary> /// <param name="mailTo">收件人(可 ...

  2. Spring mail 邮件发送的简单实现

    package cn.taskSys.utils; import java.util.Properties; import org.springframework.mail.MailException ...

  3. java mail邮件发送(带附件) 支持SSL

    java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...

  4. Java Mail 邮件发送简单封装

    上一篇文章我们用写了一个Java Mail 的Demo,相信你已经可以用那个例子来发送邮件了.但是Demo 有很多的问题. 首先每次发送需要配置的东西很多,包括发件人的邮箱和密码.smtp服务器和SM ...

  5. Java Mail邮件发送的简单实现

    1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方 ...

  6. Linux mail 邮件发送

    Linux mail 邮件介绍 在Linux系统下我们可以通过”mail“命令,发送邮件,在运维中通常我们它来实现邮件告警. 安装 (方案1) 一.安装邮件服务 yum install -y send ...

  7. Java Mail 邮件发送Demo

    上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以我就写成了一遍教程,顺便巩固下邮件发送里面的内容. Demo ...

  8. .net active up mail 邮件发送

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  9. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

随机推荐

  1. 做point data的切面的时候的注意事项

    正确的顺序应该是: 先导入cell data,再转换为point data,再做切面.结果如下: 如果这里导入cell data以后先做了切面再转换为point data,结果就是这样的: 很明显中间 ...

  2. css提取数据2个常用方法

    提取标签里的内容 所谓数据就是HTML里标签的内容,如下面红色字体,就是标签内容 <title>我只是个实验 - SCRAPY</title> 提取标签里的数据,标签可以是ti ...

  3. jquery ajax的getJSON使用

    getJSON的定义和用法 通过 HTTP GET 请求载入 JSON 数据. 在 jQuery 1.2 中,您可以通过使用 JSONP 形式的回调函数来加载其他网域的 JSON 数据,如 " ...

  4. 持续集成、持续交付、持续部署、Jkens、git

    一  持续集成.持续交付.持续部署 1. 持续集成 持续集成指的是,频繁地(一天多次)将代码集成到主干.持续集成的目的,就是让产品可以快速迭代,同时还能 保持高质量.它的核心措施是,代码集成到主干之前 ...

  5. Axure原型设计介绍

    在第八周的课堂上,王文娟老师在校园系统上发布了对于自行选择的原型设计软件进行资料查找以及自学的任务.因为之前的课程学习需要,我们大概掌握了原型设计软件Axure的使用,下面是一些我们学习过程中的介绍 ...

  6. 关于reduce的使用方法

    var rowData=[ {data:4,date:'06',code:'cr_3',name:'桥吊3'}, {data:1,date:'03',code:'cr_1',name:'桥吊1'}, ...

  7. 【随笔】关于绝对定位absolute相对于父元素定位的问题

    绝对定位absolute的官方定义: 设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块.元素原先在正常文档流中所占的空间会关闭,就好像该元素 ...

  8. Python获取当前路径下的配置文件

    Python获取当前路径下的配置文件 有的时候想读取当前目录下的一个配置文件.其采用的办法是: import os # 获取当前路径 curr_dir = os.path.dirname(os.pat ...

  9. jar包读取配置文件

    读取jar包内配置文件: Properties config = new Properties(); InputStream in = this.getClass().getClassLoader() ...

  10. CentOS下输入输出重定向

    nux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. Linux默认输入 ...