前言: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. IIS服务器环境下某路径下所有PHP接口无法运行报500.19错误

    IIS服务器环境下某路径(文件夹)下所有PHP接口无法运行报500.19错误 环境:IIS8.5 + php7.2.1 错误描述:某目录下(如 d:\web\A)所有php接口文档运行错误,接口测试工 ...

  2. 【云计算】pig基础、运行、编写

    会用和用得好是两个概念. 一.pig基础概念 二.pig运行方式 Pig 有两种运行模式: Local 模式和 MapReduce 模式. 本地模式:$pig-x local test.pig Map ...

  3. APP的功能分类及打包与发布的分类方式

    智能手机的出现改变了我们的生活,同时各种各样的APP充斥在我们的手机当中.那么我先现在在来熟悉一下APP的分类及其用途:工具类.社交类.信息类.娱乐类.生活类等几大类.我么了解了APP的用途分类,那么 ...

  4. Word常用定义的变量

    unit U_WordConst;  interface {*******Word窗体状态************} const   wdWindowStateNormal = $00000000;  ...

  5. Zookeeper概念学习系列之分布式事务

    不多说,直接上干货! 初学者来说,肯定会有这么一个疑问.为什么会在zookeeper里牵扯到分布式事务? zookeeper到底是什么? zookeeper实际上是yahoo开发的,用于分布式中一致性 ...

  6. ie8兼容总结

    ie兼容总结 1.页面必须编写规范 doctype 必须申明,否则会让浏览器出现怪异模式呈现,我记得一次是页面没有写doctype,样式的继承也会有问题,明明body里面写了字体样式12px,页面ta ...

  7. poj 2954 Triangle

    pick公式+gcd公式 #include<iostream> #include<map> #include<string> #include<cstring ...

  8. SSH连接virtualbox中的虚拟机

    SSH连接virtualbox中的虚拟机 SSH 与 Virtualbox 使用virtualbox创建虚拟机进行工作,可以有效地减少本机环境与工作环境之间的相互影响.但Server虚拟机的界面实在太 ...

  9. log4j 简单用法

    maven添加必要库: <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <gro ...

  10. golang学习之rpc实例

    rpc(远程过程调用),可以像调用本地程序一样调用远端服务,rpc分为http方式和tcp连接方式,使用http的rpc调用如下: 首先是server端: // rpc_server project ...