C# 如何实现邮件发送
调用发送
try
{
P2BEmail email = new P2BEmail();
email.fromEmail = txtfromEmail.Text; // QQ邮箱
email.fromPwd = txtfrompwd.Text; // QQ邮箱授权码
email.emailType = txtemailtype.Text; // smtp.qq.com
email.SendEmail(txttoemail.Text, txtsubject.Text, txtbody.Text, "");
txtmessage.Text = "成功";
}
catch (Exception ex)
{ txtmessage.Text = ex.Message + ex.StackTrace;
}
邮件发送逻辑
public class P2BEmail
{
public string fromEmail = "XX@qq.com";//邮件发送方 public string fromPwd = "XXXXXXXXXX"; //邮件发送方密码/QQ授权码 public string emailType = "smtp.qq.com";//邮件类型 smtp.163.com.cn; smtp.qq.com.cn; smtp.126.com.cn; smtp.sina.com.cn /// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="toEmail">接收方电子邮件</param>
/// <param name="subject">邮件标题</param>
/// <param name="body">邮件内空</param>
public void SendEmail(string toEmail, string subject, string body, string attFile)
{ MailAddress addrFrom = new MailAddress(fromEmail, fromEmail);
MailAddress addrTo = new MailAddress(toEmail, toEmail);
MailMessage mm = new MailMessage(addrFrom, addrTo);
mm.BodyEncoding = Encoding.UTF8;
mm.IsBodyHtml = true;
mm.Subject = subject;
mm.Body = body; if (!string.IsNullOrEmpty(attFile))
{
Attachment att = new Attachment(attFile, MediaTypeNames.Application.Octet);
ContentDisposition cd = att.ContentDisposition;
cd.CreationDate = File.GetCreationTime(attFile);
cd.ModificationDate = File.GetLastWriteTime(attFile);
cd.ReadDate = File.GetLastAccessTime(attFile);
mm.Attachments.Add(att);//添加附件
} NetworkCredential nc = new NetworkCredential(fromEmail, fromPwd);
SmtpClient smtp = new SmtpClient(emailType);
smtp.EnableSsl = true; //启用SSl
// 随请求一起发送
smtp.UseDefaultCredentials = false;
// 邮件账户凭证
smtp.Credentials = nc;
// 邮件发送方式-网络发送
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
// 服务器证书验证回调
ServicePointManager.ServerCertificateValidationCallback =delegate (Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; }; try
{
smtp.Send(mm);
}
catch (SmtpFailedRecipientException)
{
smtp.Dispose();
return;
}
catch (Exception ex)
{
throw ex;
}
smtp.Dispose(); } }
下载地址:源码下载.zip
C# 如何实现邮件发送的更多相关文章
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- J2EE 邮件发送那些事儿
距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...
- 结合ABP源码实现邮件发送功能
1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ...
- SSH项目里面 忘记密码的邮件发送功能
package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...
- [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...
- java spring 邮件发送
开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...
- Java邮件发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- c#实现邮件发送链接激活
2016-08-24 10:09:52 public void MailSend(string email) { MailMessage MyMail = new MailMessage(); MyM ...
- .Net(C#)最简单的邮件发送案例
一.序言 刚开始接触邮件发送功能的时候,在网上找的资料都挺复杂的!对于新手入门有点难(至少对于本人来说,第一次接触的时候确实不容易).这里就写一段简单的邮箱发送代码,备忘,也给新手一个参考(相关类的字 ...
- SpringMVC 邮件发送
<!--邮件发送实现类--> <bean id="javaMailSender" class="org.springframework.mail.jav ...
随机推荐
- Java SSM框架之MyBatis3(五)MyBatis之ResultMap详解
resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中. resultMap包含的元素: <!--column不做限制,可以为任意 ...
- AngularJs-$parsers自我理解-解析
$parsers 首先先了解下它具体的作用,当用户与控制器进行交互的时候.ngModelController中的$setViewValue()方法就会被调用,$parsers的数组中函数就会以流水线的 ...
- 20155218 2016-2017-2 《Java程序设计》第7周学习总结
20155218 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 就目前来说,即使标注为GMT(无论是文件说明,或者是API的日期时间字符串描述),实际上谈到 ...
- JS种this的四种用法
记住以下四点: 1.没调用对象就指向全局对象 2.有对象就指向调用对象 3.用new构造就指向新对象 4.通过 apply 或 call 或 bind 来改变 this 的所指. 1.测试一:没调用对 ...
- 【Python】Flask系列-cookie和session笔记
cookie: 1.cookie出现的原因:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...
- Interval Sum I && II
Given an integer array (index from 0 to n-1, where n is the size of this array), and an query list. ...
- mongo批量操作存在更新否则插入
def save_data(ok_ps): ns = [] for ok in ok_ps: ok['last_use_time'] = 0 ok['protocol'] = 0 # 协议类型 0:h ...
- springcloud常见问题处理
无法在任何已知服务器上执行请求. 原因是注册中心未启动.在使用springcloud搭建微服务时,一定要先启动注册中心,再启动服务端和客户端.具体报错如下: com.netflix.discovery ...
- 钉钉机器人-实现监控通知功能-python
1. 首先得创建有 一个 钉钉群.(因为只能发群通知) 2. 添加机器人,得到一个url: 3. 开始写Python脚本: # -*- coding: utf-8 -*- ""&q ...
- 360加固保的dex脱壳方法
完全测试了看雪论坛的方法,发现并没有脱壳,依然无法反编译 http://bbs.pediy.com/thread-213377.htm 使用上面方法的结果是会得到16个dex文件,只有一个是与程序相关 ...