.net邮件发送帮助类
代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.IO;
using System.Web;
using System.Net.Mail;
using System.Net;
using System.ComponentModel; public class GTMail
{
#region 发送电子邮件
/// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="smtpserver">SMTP服务器</param>
/// <param name="userName">登录帐号</param>
/// <param name="pwd">登录密码</param>
/// <param name="nickName">发件人昵称</param>
/// <param name="strfrom">发件人</param>
/// <param name="strto">收件人</param>
/// <param name="subj">主题</param>
/// <param name="bodys">内容</param>
public static void sendMail(string smtpserver, string userName, string pwd, string nickName, string strfrom, string strto, string subj, string bodys)
{
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtpserver;//指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(userName, pwd);//用户名和密码 //MailMessage _mailMessage = new MailMessage(strfrom, strto);
MailAddress _from = new MailAddress(strfrom, nickName);
MailAddress _to = new MailAddress(strto);
MailMessage _mailMessage = new MailMessage(_from, _to);
_mailMessage.Subject = subj;//主题
_mailMessage.Body = bodys;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.Normal;//优先级
_smtpClient.Send(_mailMessage);
}
#endregion #region 简单电子邮件发送
/// <summary>
/// 简单电子邮件发送
/// </summary>
/// <param name="smtpserver">SMTP服务器</param>
/// <param name="userName">登录帐号</param>
/// <param name="pwd">登录密码</param>
/// <param name="nickName">发件人昵称</param>
/// <param name="mailFrom">发件人</param>
/// <param name="mailTo">收件人</param>
/// <param name="subj">主题</param>
/// <param name="bodys">内容</param>
public static void sendMail(string smtpserver, int smtpport, string userName, string pwd, string nickName, string mailFrom, string mailTo, string subj, string bodys)
{
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtpserver;//指定SMTP服务器
_smtpClient.Port = smtpport;
_smtpClient.EnableSsl = true;
//_smtpClient.SendCompleted += new SendCompletedEventHandler(Smtp_SendCompleted);
_smtpClient.Credentials = new NetworkCredential(userName, pwd);//用户名和密码
MailAddress _from = new MailAddress(mailFrom, nickName, Encoding.GetEncoding());
MailAddress _to = new MailAddress(mailTo);
MailMessage _mailMessage = new MailMessage(_from, _to);
_mailMessage.Subject = subj;//主题
_mailMessage.Body = bodys;//内容
_mailMessage.BodyEncoding = Encoding.Default;//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.Normal;//优先级
_smtpClient.Send(_mailMessage);
//_smtpClient.SendMailAsync(_mailMessage);
} private static void Smtp_SendCompleted(object sender, AsyncCompletedEventArgs e)
{
string msg = e.UserState.ToString();
SmtpClient smtp = (SmtpClient)sender;
if (e.Error == null)//问题出现后,这里的Error并没有错误
{
msg += ",1";//发送成功
}
else
{
msg += ",0";
smtp.SendAsyncCancel();
}
}
#endregion #region 邮件批量发送
/// <summary>
/// 邮件批量发送
/// </summary>
/// <param name="smtpserver"></param>
/// <param name="smtpport"></param>
/// <param name="userName"></param>
/// <param name="pwd"></param>
/// <param name="mailFrom"></param>
/// <param name="nickName"></param>
/// <param name="mailTo"></param>
/// <param name="subj"></param>
/// <param name="bodys"></param>
/// <param name="cc"></param>
/// <param name="bcc"></param>
/// <param name="mailAttachments"></param>
public static void SendMail(string smtpserver, int smtpport, string userName, string pwd, string mailFrom, string nickName, string[] mailTo, string subj, string bodys, string[] cc, string[] bcc, string[] mailAttachments)
{
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network
smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
smtp.Host = smtpserver; //指定 smtp 服务器地址
smtp.Port = smtpport; //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
smtp.UseDefaultCredentials = true;
//smtp.SendCompleted += new SendCompletedEventHandler(Smtp_SendCompleted);
//如果需要认证,则用下面的方式
smtp.Credentials = new NetworkCredential(userName, pwd);
MailMessage mm = new MailMessage(); //实例化一个邮件类
mm.Priority = MailPriority.Normal; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
mm.From = new MailAddress(mailFrom, nickName, Encoding.GetEncoding());
//收件方看到的邮件来源;
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
//936是简体中文的codepage值
//注:上面的邮件来源,一定要和你登录邮箱的帐号一致,否则会认证失败 mm.ReplyToList.Add(mailFrom);
//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信 if (cc.Length > )
{
mm.CC.Add(string.Join(",", cc));//抄送
}
if (bcc.Length > )
{
mm.Bcc.Add(string.Join(",", bcc));//密送
}
if (mailAttachments.Length > )
{
for (int i = ; i < mailAttachments.Length; i++)
{
Attachment objMailAttachment = new Attachment(@mailAttachments[i]);//发送邮件的附件的地址
mm.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中
}
}
mm.To.Add(string.Join(",", mailTo));
mm.Subject = subj; //邮件标题
mm.SubjectEncoding = Encoding.GetEncoding();
// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
// 936是简体中文的pagecode,如果是英文标题,这句可以忽略不用
mm.IsBodyHtml = true; //邮件正文是否是HTML格式 mm.BodyEncoding = Encoding.GetEncoding();
//邮件正文的编码, 设置不正确, 接收者会收到乱码 mm.Body = bodys;
//邮件正文
smtp.Send(mm);
//smtp.SendMailAsync(mm); //发送邮件,如果不返回异常, 则大功告成了。
}
#endregion
}
.net邮件发送帮助类的更多相关文章
- 邮件发送工具类 SendMail.java
package com.util; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.Simp ...
- java 邮件发送工具类
首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ...
- java 邮件发送工具类【来源网络自己已经实际应用】
最近在做一个Java发送邮件的工具类,现在分享一下完整的代码 首先需要java邮件的包javax.mail-1.5.4.jar 之前因为链接给错了,很不好意思,现在重新发一次. 包在这里可以下载htt ...
- Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类
准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://www.cnblogs.com/pojo/p/14276637.html ...
- Java邮件发送工具类
个人博客 地址:https://www.wenhaofan.com/article/20190507104851 引入Pom依赖 依赖于apchae email包,maven项目可直接加入以下依赖,普 ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- J2EE 邮件发送那些事儿
距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...
- SpringMVC 邮件发送
<!--邮件发送实现类--> <bean id="javaMailSender" class="org.springframework.mail.jav ...
- 使用spring的邮件发送功能
使用spring提供的MailSender和JavaMailSender类. 1.邮件对象类 package cn.luxh.app.mail; import java.util.List; impo ...
随机推荐
- talend工具中往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG colum
今天使用talend往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG column 数据源是mysql,开 ...
- asp.net的<% %>特定用法
在asp.net应用程序中,在asp.net页面常用的<%@ %>.<%# %>.<%= %>.在全球化的项目中使用<%$ %>绑定资源项目,在asp. ...
- Log4j2 简介
介绍 Log4j2是Log4j的升级版,与之前的版本Log4j 1.x相比.有重大的改进,修正了Logback固有的架构问题的同事,改进了许多Logback所具有的功能. 特性 一.API 分离 Lo ...
- 菜鸟初学redis(二)
如果你的redis可以在myeclipse上运行小demo了,那么可以继续学习了 redis Java String 实例 string是redis最基本的类型,一个key对应一个value. str ...
- c#进阶之泛型
好久没用写博了,感觉工作的越久就越发的懒了,啦啦啦!德玛西亚! 感觉最近食欲不正,便想写写组织下自己的学习路程: 泛型,可能很多朋友在学习这个东西的时候都源于面向对象,当然我也不例外:从一个实体继承另 ...
- 2018-2019-2 网络对抗技术 20165335 Exp2 后门原理与实践
一.基础问题回答: (1)例举你能想到的一个后门进入到你系统中的可能方式? 钓鱼网站:搞一个假网站,假淘宝,盗版电影,文库下载文档什么的,下载东西的时候把带隐藏的后门程序附带下载进去,自启动,反弹连接 ...
- 错误:软件包:3:docker-ce-18.09.4-3.el7.x86_64 (docker-ce-stable) 需要:container-selinux >= 2.9
命令:yum -y install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1. ...
- qt手写输入法资料
论文: https://max.book118.com/html/2015/1229/32204490.shtm 开源库: zinna Linux下使用的Tegaki就是使用的这个库 csdn博客资料 ...
- GO值类型与引用类型
值类型 值类型包括基本数据类型,int,float,bool,string,以及数组和结构体(struct). 值类型变量声明后,不管是否已经赋值,编译器为其分配内存,此时该值存储于栈上. 值类型的默 ...
- 系统管理--配置Gitlab
很多教程都有配这个,但这个又不能用于”源码管理”模块拉取代码,我一直很困惑这个配置有什么用,然后就找到了该插件的github项目地址才弄明白,链接:https://github.com/jenkins ...