前言: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. 搭建maven环境——nexus

    第一步:部署maven环境和jdk环境 jdk直接用openjdk1. :yum -y install java--openjdk maven环境 wget http://mirror.rise.ph ...

  2. [Alpha]Scrum Meeting#1

    github 本次会议项目由PM召开,时间为4月1日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 - 撰写初版技术规格说明书(issue#1) - 撰写初版功能规格说明书 ...

  3. L1-2 倒数第N个字符串 (15 分)真坑

    给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, . ...

  4. SPOJ 1811 Longest Common Substring(求两个串的最长公共子串 || 或者n个串)

    http://www.spoj.com/problems/LCS/ 题目:求两个串的最长公共子串 参考:https://www.cnblogs.com/autoint/p/10345276.html: ...

  5. Hystrix - 踩坑回忆

    1.Unable to connect to Command Metric Stream 异常 Finchley版本使用Hystrix存在此问题.网上常规解决思路: @Bean public Serv ...

  6. saltstack源码详解一

    目录 初识源码流程 入口 1.grains.items 2.pillar.items 2/3: 是否可以用python脚本实现 总结pillar源码分析: @(python之路)[saltstack源 ...

  7. Java 网络通信相关

    http://m.blog.csdn.net/xiaojin21cen/article/details/78587541 越下面越底层 , 最后面的都是框架 , 下面的是 编程语言提供的库的 NIO ...

  8. Spring boot 项目部署服务器

    Spring Boot 有两种部署到服务器的方式,这里介绍官方推荐的(jar包) 一.首先进行application.properties配置 # EMBEDDED SERVER CONFIGURAT ...

  9. 后台如何通过Request取得多个含有相同name的控件的值?

    在Asp.net开发中,所有html控件的值都是可以在服务器端用后台代码的Request[name]来获取其值的.但如果有多个相同name的Html控件提交到后台,怎么分别取各个控件的值呢?而多数情况 ...

  10. (转)heartbeat原理及部署

    原文:http://yjy724.blog.51cto.com/10897133/1840794---------------------------------------------------h ...