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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;
using DevComponents.DotNetBar;

namespace SendMailSystem
{
    class MailSendClass
    {
        string mto;            //收件人地址
        string mfrom;          //发件人地址
        string mtitle;         //邮件标题
        string mbody;          //邮件内容
        string msmtp;          //SMTP地址
        string msmtpuid;       //发件人用户名
        string msmtppwd;       //发件人密码
        string mattach;        //附件内容

        /// <summary>
        /// 邮件发送参数值
        /// </summary>
        /// <param name="mailto">收件人地址</param>
        /// <param name="mailfrom">发件人地址</param>
        /// <param name="mailtitle">邮件标题</param>
        /// <param name="mailbody">邮件内容</param>
        /// <param name="mailattch">附件内容</param>
        /// <param name="smtp">SMTP地址</param>
        /// <param name="smtpuid">发件人用户名</param>
        /// <param name="smtppwd">发件人密码</param>
        public void MailSend(string mailto, string mailfrom, string mailtitle, string mailbody,string mailattch,string smtp, string smtpuid, string smtppwd)
        {
            mto = mailto;
            mfrom = mailfrom;
            mtitle = mailtitle;
            mbody = mailbody;
            msmtp = smtp;
            msmtpuid = smtpuid;
            msmtppwd = smtppwd;
            mattach = mailattch;
        }

        public void mSend()
        {
            SmtpClient client = new SmtpClient(msmtp); //实例化 Smtp发送服务器 类
            client.DeliveryMethod = SmtpDeliveryMethod.Network; //通过远程SMTP服务器传送邮件,这里的network表示你要使用的远程SMTP服务器。
            client.UseDefaultCredentials = true; //Smtp服务器需要验证
            client.Credentials = new NetworkCredential(msmtpuid, msmtppwd); //验证 发件人账号和密码

            //MailMessage mmsg = new MailMessage(new MailAddress(mfrom), new MailAddress(mto)); //单个发送时
            MailMessage mmsg = new MailMessage(); //实例化 Smtp客户端 类

            mmsg.Priority = MailPriority.High;//邮件优先级
            mmsg.From = ));//收件方看到的邮件来源,可以修改接收地址

            //mmsg.CC.Add(mto);//邮件的抄送者,支持群发,多个邮件地址之间用 半角逗号 分开
            mmsg.To.Add(mto); //邮件的收件者
            mmsg.Subject = mtitle; //邮件标题
            mmsg.SubjectEncoding = Encoding.UTF8;
            mmsg.Body = mbody;   //正文
            mmsg.IsBodyHtml = true; //邮件正文是否是HTML格式
            mmsg.BodyEncoding = Encoding.UTF8;
            mmsg.IsBodyHtml = true;

            if (mattach != "")
            {
                , mattach.ToString().Length - ).Split(',');
                ; i < arrayS.Length; i++)
                {
                    mmsg.Attachments.Add(new Attachment(arrayS[i].ToString()));
                }
            }
            try
            {
                client.Send(mmsg);
                MessageBoxEx.Show("邮件发送成功!");
            }
            catch (Exception e)
            {
                MessageBoxEx.Show("邮件发送失败:\n" + e.Message);
            }
        }
    }
}

Class Code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;

namespace SendMailSystem
{
    public partial class Form1 :   Office2007Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            MailSendClass classl = new MailSendClass();
            string mailaddress = "";
            )
            {
                ; i < listBox1.Items.Count; i ++ )
                {
                    mailaddress += listBox1.Items[i].ToString() + ",";
                }
            }
            classl.MailSend(mailto1.Text, mailfrom1.Text, mailtitle1.Text, mailbody1.Text, mailaddress, smtp1.Text, smtpuid1.Text, smtppwd1.Text);
            classl.mSend();
        }

        private void buttonX2_Click(object sender, EventArgs e)
        {

                string resultFile = "";

                OpenFileDialog openFileDialog1 = new OpenFileDialog();
                openFileDialog1.InitialDirectory = "D:\\Patch";
                openFileDialog1.Filter = "All files (*.*)|*.*";
                openFileDialog1.FilterIndex = ;
                openFileDialog1.RestoreDirectory = true;
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    resultFile = openFileDialog1.FileName;

                if (resultFile != "")
             {
                //mattach1.Text += resultFile + ",";
                listBox1.Items.Add(resultFile);
             }

            //ListViewItem li = new ListViewItem();
            //li.Text = resultFile;
            //li.SubItems.Add(resultFile);
            //listViewEx1.Items.Add(li);

        }

        private void buttonX3_Click(object sender, EventArgs e)
        {
            //if (mattach1.Text.ToString() != "")
            //{
            //string[] arrayS = mattach1.Text.ToString().Substring(0, mattach1.Text.ToString().Length-1).Split(',');
            //for (int i = 0; i < arrayS.Length; i++)
            //{
            //    MessageBoxEx.Show(arrayS[i].ToString());
            //}
            //}

            )
            {
              string mailaddress = "";
              )
              {
                ; i < listBox1.Items.Count; i++)
                {
                    mailaddress += listBox1.Items[i].ToString() + ",";
                }
               }
               MessageBoxEx.Show(mailaddress);
            }
        }

        private void buttonX4_Click(object sender, EventArgs e)
        {
            )
            {
                )
                {
                listBox1.Items.RemoveAt(listBox1.SelectedIndex);
                }
            }
        }

        private void buttonX5_Click(object sender, EventArgs e)
        {
            )
            {
                listBox1.Items.Clear();
            }
        }
    }
}

最后,上图。

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. Linux新手随手笔记1.9-使用Apache搭建网站

    搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux      :Apache ,nginx Ap ...

  2. 解析XMl文档和字符串

    //解析xml字符串 txt="<bookstore><book>"; txt=txt+"<title>Everyday Italia ...

  3. 数组合并去重Array.from

    function uniqArr(){ if(arguments.length == 0) return []; var arr = arguments[0]; for(var i=1;i<ar ...

  4. 压缩jar包

    1.   下载所要压缩 jar 包的源代码 2.   找到所有需要导入的类,  比如: import org.bouncycastle.util.io.pem.PemObject; import or ...

  5. Linux 用Kazam 录有声音的视频

    1.相关链接 https://launchpad.net/kazam 2.特性 录制视频的格式 : webm(vp8),mp4(h264),avi(raw),avi(huffyuv),avi(loss ...

  6. 转 RMAN: RAC Backup, Restore and Recovery using RMAN

    PURPOSE The purpose of this document is to give a quick guide for using RMAN on RAC databases. We wi ...

  7. 关于typedef的用法

    参考:http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html https://wenda.so.com/q/1471668835 ...

  8. Java super和this小结

    区别 this() / this. super() / super. 功能 调用本类构造.方法.属性 调用父类构造.方法.属性 操作方法 先查找本类是否有制定的调用结构,如果没有则调用父类 直接调用父 ...

  9. cucumber & selenium & bddtest

    目录 1.Cucumber介绍 refer link: 2.使用步骤 2.1 引入依赖 2.2新建test.future文件 2.3在resource目录下创建cucumber.bat,执行bat,c ...

  10. Java基础29-子父类中的成员变量

    /* 成员: 1.成员变量 2.函数 3.构造函数 变量: this 代表当前对象的引用 this.变量 首先在本类中找所需要的变量,如果没有找到再父类中找. super 用于访问当前对象的父类成员, ...