邮件发送案例

using System;
using System.Collections.Generic;
using System.Net.Mail;
using System.Text;

namespace Mail
{
public class MailHelper
{
/// <summary>
/// 邮件发送
/// </summary>
/// <param name="mailFrom">发件人信息</param>
/// <param name="listMailTo">收件人信息</param>
/// <param name="listMailCC">抄送人信息</param>
/// <param name="listMailBcc">密码送人信息</param>
/// <param name="strSubject">标题</param>
/// <param name="strBody">内容</param>
/// <param name="listAttachment">附件</param>
public void SendMail(MainFrom mailFrom, List<MailTo> listMailTo,List<MailCC> listMailCC,List<MailBcc> listMailBcc,string strSubject, string strBody, List<Attachments> listAttachment)
{
MailMessage mailMsg = new MailMessage();
//邮件的发件人
MailAddress from = new MailAddress(mailFrom.MailFromAddress, mailFrom.MailFromDisplayName, System.Text.Encoding.GetEncoding("GB2312"));
mailMsg.From = from;

//设置邮件的收件人
foreach (var item in listMailTo)
{
MailAddress to = new MailAddress(item.MailToAddress,item.MailToDisplayName);
mailMsg.To.Add(to);
}

//设置抄送人
foreach (var item in listMailCC)
{
MailAddress cc = new MailAddress(item.MailCCAddress,item.MailCCDisplayName);
mailMsg.CC.Add(cc);
}
foreach (var item in listMailBcc)
{
MailAddress bcc = new MailAddress(item.MailBccAddress,item.MailBccDisplayName);
mailMsg.CC.Add(bcc);
}
mailMsg.Subject = strSubject;
mailMsg.Body = strBody;
foreach (var item in listAttachment)
{
mailMsg.Attachments.Add(new Attachment(item.AttachmentPath));
}
mailMsg.IsBodyHtml = true;
mailMsg.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
mailMsg.Priority = MailPriority.Normal;
mailMsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;

//邮件发送服务器
SmtpClient client = new SmtpClient();
client.Host = "mail.lenovots.com";
//设置用于 SMTP 事务的端口,默认的是 25
//client.Port = 25;
client.UseDefaultCredentials = false;
//发件人邮箱登陆名和密码
client.Credentials = new System.Net.NetworkCredential("发件人邮箱地址", "发件人邮箱密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;

//发送邮件
client.Send(mailMsg);
}
}

#region 发件人信息
public class MainFrom {
private string _mailFromAddress;
/// <summary>
/// 发件人邮箱地址
/// </summary>
public string MailFromAddress
{
get { return _mailFromAddress; }
set { _mailFromAddress = value; }
}
private string _mailFromDisplayName;
/// <summary>
/// 发件人显示名称
/// </summary>
public string MailFromDisplayName
{
get { return _mailFromDisplayName; }
set { _mailFromDisplayName = value; }
}
}
#endregion

#region 收件人信息
public class MailTo {
private string _mailToAddress;
/// <summary>
/// 收件人地址
/// </summary>
public string MailToAddress
{
get { return _mailToAddress; }
set { _mailToAddress = value; }
}
private string _mailToDisplayName;
/// <summary>
/// 收件人显示名称
/// </summary>
public string MailToDisplayName
{
get { return _mailToDisplayName; }
set { _mailToDisplayName = value; }
}
}
#endregion

#region 抄送人信息
public class MailCC {
private string _mailCC;
/// <summary>
/// 抄送人地址
/// </summary>
public string MailCCAddress
{
get { return _mailCC; }
set { _mailCC = value; }
}
private string _mailCCDisplayName;
/// <summary>
/// 抄送人显示名称
/// </summary>
public string MailCCDisplayName
{
get { return _mailCCDisplayName; }
set { _mailCCDisplayName = value; }
}
}
#endregion

#region 密送人信息
public class MailBcc {
private string _mailBccAddress;
/// <summary>
/// 密送人地址
/// </summary>
public string MailBccAddress
{
get { return _mailBccAddress; }
set { _mailBccAddress = value; }
}
private string _mailBccDisplayName;
/// <summary>
/// 密送人显示名称
/// </summary>
public string MailBccDisplayName
{
get { return _mailBccDisplayName; }
set { _mailBccDisplayName = value; }
}
}
#endregion

#region 附件信息
public class Attachments {
private string _attachmentPath;
/// <summary>
/// 附件路径
/// </summary>
public string AttachmentPath
{
get { return _attachmentPath; }
set { _attachmentPath = value; }
}
}
#endregion

时间: 2024-11-06 15:22:59

邮件发送案例的相关文章

SQL Server数据库邮件发送异常案例

最近遇到两起关于SQL Server数据库邮件发送异常的案例,这些问题也有点意思,顺便记录一下.方便以后遇到类似问题的人为这些问题抓狂!多提供一点思路. 案例1:我们一台数据库服务器突然发送邮件都不行了,出现问题时,检查邮件发送记录,你会发现发送状态都是failed. SELECT * FROM msdb.dbo.sysmail_faileditems   SELECT * FROM msdb.dbo.sysmail_mailitems 检查Database Mail Log,你会发现有下面一些

java:邮件发送失败总结(只是外网服务器有问题)

案例一: 运行环境比较 1.本地用同样的代码.系统环境及发邮件的帐号是没有问题的: 2.外网其它服务器项目使用相同技术也没有问题: 问题现象 邮件模板中某链接(如:"http://www.baidu.com/...")在邮箱发送后自动执行了,导致其它业务出错. 处理方式     1.处理前:"http://www.baidu.com/..."这部分字符串是在发邮件时整个填充到邮件模板中某个变量:        2.处理后:"http://"固定在

Java Mail邮件发送的简单实现

1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方面. 2.邮件发送的大致过程 1.构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法.此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利. 2.构建一个properties文件,该文件中存放SMTP服务器

.NET开发邮件发送功能的全面教程(含邮件组件源码)

ref: http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         邮件发送相关.NET类库 3)         介绍我开发的一个发送邮件的小组件(MailHelper) 4)         MailHelper组

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表. 发布这些文档最快速有效的方法就是发送邮件. python中email模块使得处理邮件变得比较简单 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 本段摘录于    http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 1.smtplib模块 smtplib.SMTP([host[, p

java-基于JavaMail的Java邮件发送

1.基于JavaMail的Java邮件发送:简单邮件发送 2.基于JavaMail的Java邮件发送:复杂邮件发送

更改邮件发送语言为英语,解决编码为UTF8邮箱注册账号,邮件内容乱码问题

Change email English language, code for UTF8 mailbox registered account, email content garbled. 1. code analysis 乱码分析 通过对中文编码的邮件服务器使用原来的系统(GB2312) The original system used by the mail server encoding for the Chinese code (GB2312) 我使用outlook.com的邮箱(UT

redmine邮件发送功能配置详解

redmine的邮件发送功能还是很有用的. 像项目有更新啦,任务分配啦,都能邮件发送的相关责任人. 我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了. 查了网上的资料,都是讲修改下配置文件就可以了,他们没错,只是没有讲全. 下面是我整理的一个redmine邮件发送功能设置的一个完整流程. 1. sendmail安装与检查 linux机器上安装的redmine要能发送邮件,先得是本机的sendmail功能是正常的. 查看sendmail进程是否已正常启动: $ ps au

自动化邮件报告平台-邮件发送highchart图表

前段时间参与开发这样的一个系统,负责前端设计开发,使用人员提出需要在邮件发送的时候自动获取这些highchart图表数据,并显示在平台页面上,当发送邮件的时候也把图表附带在邮件中. highchart是一个比较强大的图表组件,这个图表组件以svg方式渲染在网页上,渲染完毕后会在网页中添加了svg元素,可以通过dom 或者jQuery 把svg内容单独抽取出来,此svg元素也能够在网页上直接显示,如下图所示.  但是,在邮箱环境下,这些svg元素不一定能展示在邮件里面,各种邮箱环境不同,在手机端邮