System.Net.Mail 邮件发送示例
前言: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 邮件发送示例的更多相关文章
- System.Net.Mail邮件发送抄送附件(多个)
/// <summary> /// 邮件发送抄送附件 /// </summary> /// <param name="mailTo">收件人(可 ...
- Spring mail 邮件发送的简单实现
package cn.taskSys.utils; import java.util.Properties; import org.springframework.mail.MailException ...
- java mail邮件发送(带附件) 支持SSL
java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...
- Java Mail 邮件发送简单封装
上一篇文章我们用写了一个Java Mail 的Demo,相信你已经可以用那个例子来发送邮件了.但是Demo 有很多的问题. 首先每次发送需要配置的东西很多,包括发件人的邮箱和密码.smtp服务器和SM ...
- Java Mail邮件发送的简单实现
1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方 ...
- Linux mail 邮件发送
Linux mail 邮件介绍 在Linux系统下我们可以通过”mail“命令,发送邮件,在运维中通常我们它来实现邮件告警. 安装 (方案1) 一.安装邮件服务 yum install -y send ...
- Java Mail 邮件发送Demo
上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以我就写成了一遍教程,顺便巩固下邮件发送里面的内容. Demo ...
- .net active up mail 邮件发送
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
随机推荐
- [原创]VMware Workstation 14.1.3 Pro安装CentOS_7.6.1810
前言 Linux作为最主流的服务器操作系统,在市场上的使用占比保持着领先对位.其中CentOS作为基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本,在企业的服务器中,也 ...
- odoo 二次开发的一些原理
一:self是什么 目前新版的Odoo中使用到的self,是对 游标cr.用户ID.模型.上下文.记录集.缓存 的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr. ...
- 《The One!团队》第一次作业:团队亮相
项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10687492.h ...
- c# 小票打印
c# 在进行小票打印时大致有三种方法. 1. 使用水晶报表进行打印.可以参考:https://www.cnblogs.com/aitong/p/10717786.html 2. 在 PrintDocu ...
- 时钟时间,系统cpu时间,用户cpu时间
进程的3种状态:阻塞,就绪,运行 度量一个进程的执行时间,unix为进程维护了3个时间,即时钟时间,用户CPU时间,系统CPU时间. 时钟时间又被称为墙上时钟时间,wall clock tim ...
- Redis中算法之——Raft算法
Sentinel系统选举领头的方法是对Raft算法的领头选举方法的实现. 在分布式系统中一致性是很重要的.1990年Leslie Lamport提出基于消息传递的一致性算法Paxos算法,解决分布式系 ...
- 透视效果shader(边缘光)
思路:渲染两次. 1.第一次渲染:利用Greater进行深度测试,当目标被遮挡时,用一个边缘光的效果显示. 2.第二次渲染:正常渲染. 边缘光的思路:观察方向和顶点法向量夹角越大,边缘光越明显.边缘光 ...
- MATLAB拟合和插值
定义 插值和拟合: 曲线拟合是指您拥有散点数据集并找到最适合数据一般形状的线(或曲线). 插值是指您有两个数据点并想知道两者之间的值是什么.中间的一半是他们的平均值,但如果你只想知道两者之间的四分之一 ...
- lucene关于IndexReader总结
IndexReader.使用过程中有时会出现document被删除,reader还是原来的reader没有改变,所以使用openifchanged保证, 又因为IndexReader 初始化很耗费资源 ...
- 关于window.console&&console.log(123)的思考
一.JS的且运算记得最开始看到window.console&&console.log(123),当时知道能起什么作用但是没有深入研究,最近在研究后总算弄明白了.要理解这个,首先得明白三 ...