代码如下:

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(936));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(); //实例化一个SmtpClientsmtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Networksmtp.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));//收件方看到的邮件来源;//第一个参数是发信人邮件地址//第二参数是发信人显示的名称//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码//936是简体中文的codepage值//注:上面的邮件来源,一定要和你登录邮箱的帐号一致,否则会认证失败
mm.ReplyToList.Add(mailFrom);//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信if (cc.Length > 0){mm.CC.Add(string.Join(",", cc));//抄送
            }if (bcc.Length > 0){mm.Bcc.Add(string.Join(",", bcc));//密送
            }if (mailAttachments.Length > 0){for (int i = 0; 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);// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。// 936是简体中文的pagecode,如果是英文标题,这句可以忽略不用mm.IsBodyHtml = true; //邮件正文是否是HTML格式
mm.BodyEncoding = Encoding.GetEncoding(936);//邮件正文的编码, 设置不正确, 接收者会收到乱码
mm.Body = bodys;//邮件正文
            smtp.Send(mm);//smtp.SendMailAsync(mm); //发送邮件,如果不返回异常, 则大功告成了。
        }#endregion }

转载于:https://www.cnblogs.com/Angel-szl/p/10404854.html

.net邮件发送帮助类相关推荐

  1. 封装一个邮件发送工具类,一个字,巴适

    系列文章目录 文章目录 系列文章目录 前言 一. 介绍 二.二话不说开始干 1.引入库 2. 邮件发送实体(Mail) 3. 邮件发送类型枚举(MailType ) 4.邮件发送抽象类(Abstrac ...

  2. Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类

    准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://blog.csdn.net/weixin_44953227/articl ...

  3. JAVA 邮件发送工具类

    1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model;import java.io.Serializable; / ...

  4. C# 邮件发送帮助类

    引用 using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using S ...

  5. exchange无法收发邮件_SpringBoot2.x系列教程69--SpringBoot中整合邮件发送

    SpringBoot2.x系列教程69--SpringBoot中整合邮件发送 作者:一一哥 注: 本文案例以QQ邮箱发送的实现为例! 一. 邮件发送概述 1. 概述 在Spring框架中提供了一个Ja ...

  6. [Java工具] 邮件发送工具

    注册邮箱 去163邮箱(或其他邮箱)注册一个邮箱,并开启SMTP授权码. 程序 需要注意的是,由于阿里云服务器不让使用默认的25端口,所以会出现Windows下测试发送邮件成功,Linux服务器下发送 ...

  7. 10-10-定时邮件发送

    一.邮件发送工具类实现 创建一个用于邮件发送服务的工具类MailUtils,并编写一个发送简单邮件的方法 @Component public class MailUtils { @Autowired ...

  8. exchange无法收发邮件_SpringBoot2.x系列教程69--SpringBoot中整合Mail实现邮件发送

    SpringBoot2.x系列教程69--SpringBoot中整合邮件发送 作者:一一哥 注: 本文案例以QQ邮箱发送的实现为例! 一. 邮件发送概述 1. 概述 在Spring框架中提供了一个Ja ...

  9. 利用hutool实现邮件发送功能

    如何利用hutool工具包实现邮件发送功能呢? 1.首先引入hutool依赖 <dependency><groupId>cn.hutool</groupId>< ...

  10. Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 下篇

    Email邮件设置(网易邮箱.Mailgun)  下篇 说明:STMP服务邮件发送工具类,其中包括文本发送.html发送.附件发送. 1.maven pom 配置 <dependency> ...

最新文章

  1. “allegro中焊盘的设置”收藏
  2. Docker安装mysql8
  3. java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)
  4. 信息学奥赛C++语言:交换数值
  5. XML数据读取方式性能比较(一) (转)
  6. 直接拿来用!最火的Android开源项目(一) (转)
  7. 基于android的电子词典设计_基于安卓Android电子词典移动客户端APP设计(AndroidStudio,SQLit...
  8. 中国大学生在线官方微博入围全国十大中央机构微博、全国十大教育微博
  9. 产品设计必读书籍推荐
  10. 淘宝网上卖F22飞机,一群强人提问
  11. FTP服务器文件的批量下载
  12. 色即是空 空即是色_huadingjin_新浪博客
  13. 【深度好文】Python图像处理之物体标识与面积测量
  14. 关于insight数据库价格与价值的双重选择
  15. 【软件之道】Word模板的制作及使用
  16. 发布订阅和观察者模式
  17. Ubuntu安装笔记
  18. 睡到自然醒的七个关键,熬夜的要看哦!
  19. 聚类算法之K-means
  20. 赋予人工智能记忆的人,带你梳理深度学习核心算法

热门文章

  1. php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
  2. NP、OSPF监测调试
  3. MySQL优化详解(一)——硬件和系统优化
  4. IPv6中NDP协议简介
  5. PyCharm 2020.2.3复制粘贴及删除键修正
  6. Redhat5 安装oracle10g 启动测试
  7. (转)Android 如何建立你的菜单
  8. 寻找最小term,自制面试题
  9. java final一点
  10. Windows Phone 7 Tips (8)