前言: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. [原创]VMware Workstation 14.1.3 Pro安装CentOS_7.6.1810

    前言 Linux作为最主流的服务器操作系统,在市场上的使用占比保持着领先对位.其中CentOS作为基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本,在企业的服务器中,也 ...

  2. odoo 二次开发的一些原理

    一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID.模型.上下文.记录集.缓存  的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr. ...

  3. 《The One!团队》第一次作业:团队亮相

    项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10687492.h ...

  4. c# 小票打印

    c# 在进行小票打印时大致有三种方法. 1. 使用水晶报表进行打印.可以参考:https://www.cnblogs.com/aitong/p/10717786.html 2. 在 PrintDocu ...

  5. 时钟时间,系统cpu时间,用户cpu时间

    进程的3种状态:阻塞,就绪,运行   度量一个进程的执行时间,unix为进程维护了3个时间,即时钟时间,用户CPU时间,系统CPU时间.   时钟时间又被称为墙上时钟时间,wall clock tim ...

  6. Redis中算法之——Raft算法

    Sentinel系统选举领头的方法是对Raft算法的领头选举方法的实现. 在分布式系统中一致性是很重要的.1990年Leslie Lamport提出基于消息传递的一致性算法Paxos算法,解决分布式系 ...

  7. 透视效果shader(边缘光)

    思路:渲染两次. 1.第一次渲染:利用Greater进行深度测试,当目标被遮挡时,用一个边缘光的效果显示. 2.第二次渲染:正常渲染. 边缘光的思路:观察方向和顶点法向量夹角越大,边缘光越明显.边缘光 ...

  8. MATLAB拟合和插值

    定义 插值和拟合: 曲线拟合是指您拥有散点数据集并找到最适合数据一般形状的线(或曲线). 插值是指您有两个数据点并想知道两者之间的值是什么.中间的一半是他们的平均值,但如果你只想知道两者之间的四分之一 ...

  9. lucene关于IndexReader总结

    IndexReader.使用过程中有时会出现document被删除,reader还是原来的reader没有改变,所以使用openifchanged保证, 又因为IndexReader 初始化很耗费资源 ...

  10. 关于window.console&&console.log(123)的思考

    一.JS的且运算记得最开始看到window.console&&console.log(123),当时知道能起什么作用但是没有深入研究,最近在研究后总算弄明白了.要理解这个,首先得明白三 ...