调用发送

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# 如何实现邮件发送的更多相关文章

  1. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

  2. J2EE 邮件发送那些事儿

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

  3. 结合ABP源码实现邮件发送功能

    1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ...

  4. SSH项目里面 忘记密码的邮件发送功能

    package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...

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

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

  6. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  7. Java邮件发送与接收原理

    一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...

  8. c#实现邮件发送链接激活

    2016-08-24 10:09:52 public void MailSend(string email) { MailMessage MyMail = new MailMessage(); MyM ...

  9. .Net(C#)最简单的邮件发送案例

    一.序言 刚开始接触邮件发送功能的时候,在网上找的资料都挺复杂的!对于新手入门有点难(至少对于本人来说,第一次接触的时候确实不容易).这里就写一段简单的邮箱发送代码,备忘,也给新手一个参考(相关类的字 ...

  10. SpringMVC 邮件发送

    <!--邮件发送实现类--> <bean id="javaMailSender" class="org.springframework.mail.jav ...

随机推荐

  1. html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码

    一:通过html锚点实现滚动定位到页面指定位置(DIV):    如果我们要点击实现跳转的地方是一个html锚点,也就是点击一个A标签超链接实现跳转,可以把A标签的href属性直接指向跳转指定位置的d ...

  2. CSS规范 - 最佳实践--(来自网易)

    最佳选择器写法(模块) /* 这是某个模块 */ .m-nav{}/* 模块容器 */ .m-nav li,.m-nav a{}/* 先共性 优化组合 */ .m-nav li{}/* 后个性 语义化 ...

  3. 编写 grunt 插件经验

    第一步: 先生成插件模板: 利用命令生成, 首先通过github工具获取gruntplugin模板文件: 第二步: 了解plugin/tasks/taskName.js的registerMultiTa ...

  4. BZOJ2428 均分数据

    2428: [HAOI2006]均分数据 Time Limit: 5 Sec  Memory Limit: 128 MB Description 已知N个正整数:A1.A2.…….An .今要将它们分 ...

  5. 关于 xcode5 的no matching provisioning profiles found

    CHENYILONG Blog 关于 xcode5 的no matching provisioning prof- about the question in xcode5 "no matc ...

  6. MySQL忘记密码了怎么办?

    接手一个项目时,如果上一位负责人没有把项目文档.账号密码整理好是一件很头疼的事情.. 例如,当你想打开MySQL数据库的时候 输入: mysql -u root -p 一回车想输入密码,发现密码错误! ...

  7. Python程序员之面试必回习题

    写在前面 近日恰逢学生毕业季,课程后期大家“期待+苦逼”的时刻莫过于每天早上内容回顾和面试题问答部分[临近毕业每天课前用40-60分钟对之前内容回顾.提问和补充,专挑班里不爱说话就的同学回答]. 期待 ...

  8. linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.7.9)的步骤以及一些注意事项

    首先下载安装包,之后先安装erlang,安装erlang需要很多依赖,所以一步步来: 首先 wxWidgets会报错,这个不是必须的,可以不安装,不影响 然后需要安装一些必须的依赖: yum inst ...

  9. 【CTF WEB】命令执行

    命令执行 找到题目中的KEY KEY为八位随机字符数字,例如key:1234qwer.提交1234qwer 即可. 漏洞代码 <?php system("ping -c 2 " ...

  10. 浅介HTML DOM

    什么是DOM? DOM是Document Object Model(文档对象模型)的缩写. DOM是W3C(万维网联盟)的标准. DOM定义了访问HTML和XML文档的标准: “W3C文档对象模型(D ...