using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Net.Mime;
using System.Net;
using System.IO; namespace TestForm
{
class Email
{
string smtpHost = string.Empty;
string Sendmailaddress = string.Empty;
string Sendpassword = string.Empty;
string SendDisplayname = string.Empty;
string Recevivemailaddress = string.Empty;
string ReceviveDisplayname = string.Empty; /// <summary>
///
/// </summary>
/// <param name="host">主机号</param>
/// <param name="sendmailaddress">发送人邮箱地址</param>
/// <param name="sendpassword">发送邮箱密码</param>
/// <param name="sendDisplayname">发送人显示名称</param>
/// <param name="recevivemailaddress">接收人邮箱地址</param>
/// <param name="receviveDisplayname">接收人显示名称</param>
public Email(string host, string sendmailaddress, string sendpassword, string sendDisplayname, string recevivemailaddress, string receviveDisplayname)
{
smtpHost = host;
Sendmailaddress = sendmailaddress;
Sendpassword = sendpassword;
SendDisplayname = sendDisplayname;
Recevivemailaddress = recevivemailaddress;
ReceviveDisplayname = receviveDisplayname;
} /// <summary>
/// 发送邮件功能
/// </summary>
/// <param name="mailsubject">邮件标题</param>
/// <param name="mailbody">邮件主要内容</param>
/// <param name="isadddocument">是否添加附件</param>
/// <param name="documentpath">添加附件的文件路径列表</param>
/// <returns></returns>
public bool Sendmail(string mailsubject, string mailbody, bool isadddocument, List<string> documentpath)
{
bool sendstatus = false;
try
{
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(smtpHost); //确定smtp服务器地址。实例化一个Smtp客户端
MailAddress from = new MailAddress(Sendmailaddress, SendDisplayname, Encoding.UTF8);//构造一个发件人地址对象
MailAddress to = new MailAddress(Recevivemailaddress, ReceviveDisplayname, Encoding.UTF8);//构造一个收件人地址对象
MailMessage message = new MailMessage(from, to);//构造一个Email的Message对象 message.Subject = mailsubject;
message.SubjectEncoding = Encoding.UTF8;
message.Body = mailbody;
message.BodyEncoding = Encoding.UTF8; //设置邮件的信息
client.DeliveryMethod = SmtpDeliveryMethod.Network;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = false; //如果服务器支持安全连接,则将安全连接设为true。
//如果是gmail则一定要将其设为true
if (smtpHost == "smpt.gmail.com")
client.EnableSsl = true;
else
client.EnableSsl = false; if (isadddocument == true)
{
AddDocument(message, documentpath);
}
client.UseDefaultCredentials = false;
//用户登陆信息
NetworkCredential myCredentials = new NetworkCredential(Sendmailaddress, Sendpassword);
client.Credentials = myCredentials;
//发送邮件
client.Send(message);
sendstatus = true;
}
catch { }
return sendstatus;
} /// <summary>
/// 添加附件功能
/// </summary>
/// <param name="message">Mailmessage对象</param>
/// <param name="Documentpath">附件路径列表</param>
private void AddDocument(MailMessage message, List<string> Documentpath)
{
foreach(string filepath in Documentpath)
{
try
{
if (File.Exists(filepath)) //判断文件是否存在
{
Attachment attach = new Attachment(filepath); //构造一个附件对象
ContentDisposition disposition = attach.ContentDisposition; //得到文件的信息
disposition.CreationDate = System.IO.File.GetCreationTime(filepath);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(filepath);
disposition.ReadDate = System.IO.File.GetLastAccessTime(filepath);
message.Attachments.Add(attach); //向邮件添加附件
}
}
catch { }
}
}
}
}

做网站的时候用到,看到一篇博文:http://www.cnblogs.com/youring2/archive/2008/11/29/1343911.html

深感有用,特小修并写成类,希望能帮人帮己~

C#基础-邮件发送的更多相关文章

  1. JavaWeb基础—邮件发送

    一.JavaMail概述与入门 JavaMail-java提供的一组API,用来收发邮件 中间有个邮件服务器: 客户端发给邮件服务器,另外一收件客户端从邮件服务器下载(最稳的还是163,QQ有点不靠谱 ...

  2. J2EE 邮件发送那些事儿

    距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...

  3. [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作

    这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...

  4. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...

  5. .NET常用方法——邮件发送

    邮件发送类文件,可直接使用: 调用方法(实例化.静态调用): 实例化: string exception = ""; SendEmail.SendEmail SE = new Se ...

  6. 邮件发送服务AWS SES,Mailgun以及SendCloud(转)

    原文:http://www.l4zy.com/posts/aws_ses-mailgun-sendcloud.html 电子邮件这一已经诞生很多年的互联网基础服务并没有随着时间的推移而慢慢消亡,实际上 ...

  7. 使用phantomjs实现highcharts等报表通过邮件发送

    使用phantomjs实现highcharts等报表通过邮件发送(本文仅提供完整解决方案和实现思路,完全照搬不去整理代码无法马上得到效果)   前不久项目组需要将测试相关的质量数据通过每日自动生成报表 ...

  8. 创建基于MailKit和MimeKit的.NET基础邮件服务

    邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础 ...

  9. Spring邮件发送2

    前言:上一篇博文讲解了邮件发送的基础用法(数据是写死的),然而在实际开发中,大多数情况下邮件内容都是根据业务来动态生成的.所以在此篇博文中,我们将讲解邮件发送携带数据的几种方案. 一.解析自定义占位符 ...

随机推荐

  1. Backbone源码分析(三)

    Backbone源码分析(一) Backbone源码分析(二) Backbone中主要的业务逻辑位于Model和Collection,上一篇介绍了Backbone中的Model,这篇文章中将主要探讨C ...

  2. Python黑帽编程 4.0 网络互连层攻击概述

    Python黑帽编程 4.0 网络互连层攻击概述 是时候重新温习下下面这张图了. 图2 本章的内容核心包含上图中的网络层和传输层.TCP/IP是整个网络协议体系中的核心,因为从这里开始,数据传输从局域 ...

  3. 剑指Offer面试题:2.二维数组中的查找

    一.题目:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  4. [ASP.NET MVC 小牛之路]07 - URL Routing

    我们知道在ASP.NET Web Forms中,一个URL请求往往对应一个aspx页面,一个aspx页面就是一个物理文件,它包含对请求的处理. 而在ASP.NET MVC中,一个URL请求是由对应的一 ...

  5. Understanding RabbitMQ Exchange & Queue

    Exchanges are the only places where messages could be published to; while queues are the only places ...

  6. 特邀美国EMC实战专家Mark来华授课

    “轻松搞定EMC-PCB和系统设计”课程介绍 本次课程特邀美国EMC领域权威专家Mark Montrose主讲,将涵盖满足产品电磁兼容性和信号完整性的基本原理.课程涉及多个领域,不仅仅针对PCB设计, ...

  7. javaScript 基础知识

    一.三个对话框 1.alert("提示信息") 弹出只带有一个确定按钮的对话框2.confirm("提示信息") 弹出有确定和取消按钮的对话框3.prompt( ...

  8. 推荐12个漂亮的 CSS3 按钮实现方案

    在过去,我们都是使用图片或者JavaScript来实现漂亮的按钮效果,随着越来越多的浏览器对CSS3的支持和完善,使用CSS3来实现美观的按钮已没有太多的障碍.今天,本文收集了12个很不错的CSS3按 ...

  9. Vue.js学习笔记(8)拖放

    小颖在目前负责的项目中,负责给同事提供所需组件,在这期间,我们家大颖姐姐让我 写个拖拽组件,一开始我是用click实现,先将你要拖拽的dom点一下,然后再点你要放的位置,这个dom再通过小颖写的方法, ...

  10. invalidate()和postInvalidate() 的区别及使用

    Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...