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 ...
随机推荐
- html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码
一:通过html锚点实现滚动定位到页面指定位置(DIV): 如果我们要点击实现跳转的地方是一个html锚点,也就是点击一个A标签超链接实现跳转,可以把A标签的href属性直接指向跳转指定位置的d ...
- CSS规范 - 最佳实践--(来自网易)
最佳选择器写法(模块) /* 这是某个模块 */ .m-nav{}/* 模块容器 */ .m-nav li,.m-nav a{}/* 先共性 优化组合 */ .m-nav li{}/* 后个性 语义化 ...
- 编写 grunt 插件经验
第一步: 先生成插件模板: 利用命令生成, 首先通过github工具获取gruntplugin模板文件: 第二步: 了解plugin/tasks/taskName.js的registerMultiTa ...
- BZOJ2428 均分数据
2428: [HAOI2006]均分数据 Time Limit: 5 Sec Memory Limit: 128 MB Description 已知N个正整数:A1.A2.…….An .今要将它们分 ...
- 关于 xcode5 的no matching provisioning profiles found
CHENYILONG Blog 关于 xcode5 的no matching provisioning prof- about the question in xcode5 "no matc ...
- MySQL忘记密码了怎么办?
接手一个项目时,如果上一位负责人没有把项目文档.账号密码整理好是一件很头疼的事情.. 例如,当你想打开MySQL数据库的时候 输入: mysql -u root -p 一回车想输入密码,发现密码错误! ...
- Python程序员之面试必回习题
写在前面 近日恰逢学生毕业季,课程后期大家“期待+苦逼”的时刻莫过于每天早上内容回顾和面试题问答部分[临近毕业每天课前用40-60分钟对之前内容回顾.提问和补充,专挑班里不爱说话就的同学回答]. 期待 ...
- linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.7.9)的步骤以及一些注意事项
首先下载安装包,之后先安装erlang,安装erlang需要很多依赖,所以一步步来: 首先 wxWidgets会报错,这个不是必须的,可以不安装,不影响 然后需要安装一些必须的依赖: yum inst ...
- 【CTF WEB】命令执行
命令执行 找到题目中的KEY KEY为八位随机字符数字,例如key:1234qwer.提交1234qwer 即可. 漏洞代码 <?php system("ping -c 2 " ...
- 浅介HTML DOM
什么是DOM? DOM是Document Object Model(文档对象模型)的缩写. DOM是W3C(万维网联盟)的标准. DOM定义了访问HTML和XML文档的标准: “W3C文档对象模型(D ...