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) ...
随机推荐
- centos的用户的基本操作
:一:查看当前系统中的用户账号 grep bash /etc/passwd 二:利用root用户(超级管理员给普通用户修改密码)-------- root用户可以修改其他所有人的密码,且不需要验证 ...
- webform的导出
呃 怎么说呢 我这个是公司大佬写好的 我直接调用 和以前写的百度上面的都不大一样 感觉很Nice 插个眼 说不定以后还得回来参考参考 具体是这样的 你先写好一个模板 就是你要导出的数据应该在Ex ...
- [转] vagrant学习笔记 - provision
[From] https://blog.csdn.net/54powerman/article/details/50684844 从字面上来看,provision是准备,实现的功能是在原生镜像的基础 ...
- linux 系统管理(2) 文件或目录数量统计
统计某文件夹下文件的个数 ls -l |grep "^-"|wc -l 统计某文件夹下目录的个数 ls -l |grep "^d"|wc -l 统计文件夹下文件 ...
- [Java基础]-- Java GC 垃圾回收器的分类和优缺点
https://blog.csdn.net/high2011/article/details/80177473?utm_source=blogxgwz2 参考:elasticsearch实战-使用G1 ...
- (转)PXE+kickstart无人值守安装CentOS 7
kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart无人值守安装CentOS ...
- mysql_connect(): Headers and client library minor version mismatch.
查询当前Client 版本,结果如下: Client API version => 5.6.31Client API library version => 5.6.31Client API ...
- Robot Framework_Ride(Settings)
Settings 不管是测试套件还是测试用例都会有一个“Settings>>”的按钮,因为它默认是被折叠起来的,所以,一般不太容易发现它,更不知道点击它之后是可以展开的 1.测试用例的 S ...
- 9.1_the end
选择题 1.考察正则,书写一个6位数的邮箱 a var mail=/\d{6}/; b var mail=new RegExp("/\d{6}/"); 分析:对a,应该要添加开头和 ...
- 关于发布webservice提示The test form is only available for requests from the local machine
通过编辑 Web 服务所在的 vroot 的 Web.config 文件,可以启用 HTTP GET 和 HTTP POST.以下配置同时启用了 HTTP GET 和 HTTP POST: <c ...