.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 ...
随机推荐
- python selenium 百度登录
from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...
- liunx驱动----点亮LED
自动挂接根文件系统(直接从NFS启动) 修改uboot命令行 把 bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 ...
- 操作redis
数据库分为: 1)传统的关系型数据库 mysql.oracle.sql server.sqllie.db2 id name passwd cratetime stu 特点: a 数据存在磁盘上 b 使 ...
- react中对于redux的封装
const createStore = (reducer)=>{ //默认的state对象 let state = {}; //将所有订阅的事件存在在这个数组中 let listeners = ...
- redis注册为window服务
打开redis安装路径并执行:redis-server --service-install redis.windows.conf 安装服务命令 执行完命令后打开电脑服务 此时服务还未启动,执行命令:r ...
- iOS项目之使用开关控制日志输出的功能
最近一直在做sdk的项目,用户提出了一个需求,需要屏蔽sdk内部的日志输出.由于sdk内部的日志是为了调试,如果屏蔽了肯定不方便,所以研究了一下日志输出开关的功能. 在这里介绍两种实现方案:一种方案是 ...
- 如何在Qt中使用自定义数据类型
这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样): struct Player { int number; QString firstName; QString ...
- Java线程池ThreadPoolExecutor原理和用法
1.ThreadPoolExecutor构造方法 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAli ...
- Selenium及Headless Chrome抓取动态HTML页面
一般的的静态HTML页面可以使用requests等库直接抓取,但还有一部分比较复杂的动态页面,这些页面的DOM是动态生成的,有些还需要用户与其点击互动,这些页面只能使用真实的浏览器引擎动态解析,Sel ...
- HDFS配置参数及优化之实战经验(Linux hdfs)
HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...