作为一只入行不久的小菜鸟,最近接触到利用C#代码发送邮件,做了一点小的demo练习。首先,需要配置,这边我做的是QQ邮箱的相关的练习,练习之前,首先应该解决的问题肯定是关于服务器的配置,这边偷一个懒,不做一一的步骤截图,此外文字表述能力也不及于很好的阐述清楚这个东西,附上百度经验的链接吧 https://jingyan.baidu.com/article/6079ad0eb14aaa28fe86db5a.html。 配置好了之后就开始代码了
第一种方式:

 点击发送按钮执行代码:
/// <summary>
/// 发送
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
SendM send = new SendM();
string sendto = SendTo.Text; //目标邮箱
string zt = txtZt.Text; //邮箱主题
string nr = Nr.Text; //邮箱内容
bool a = CheckEmail.CheckTxtEmail(sendto); //检查邮箱地址是否规范
if (a == true)
{
if( send.SendMessage(sendto, zt, nr)) //调用发送
{
MessageBox.Show("发送成功");
RefreshAll();
}
}
else
{
MessageBox.Show("邮箱地址错误");
RefreshAll();
}
} 上面代码的SendMessage函数:
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="mailto"></param>
/// <param name="mailSubject"></param>
/// <param name="mailContent"></param>
/// <returns></returns>
public bool SendMessage(string mailto,string mailSubject,string mailContent)
{
string stmpSever = "smtp.qq.com"; //服务器
string mailfrom = "**********@qq.com"; //进行QQ邮箱相关配置 用于发送邮件的地址
string mailfromPwd = "**************"; //QQ邮箱开启服务 获取的对应授权码 MailMessage message = new MailMessage();
message.Subject = mailSubject; //邮件的主题
message.Body = mailContent;//邮件的内容
message.BodyEncoding = Encoding.UTF8;
message.From =new MailAddress(mailfrom); //邮箱的地址
message.To.Add(mailto); //目标邮箱
message.Priority = MailPriority.Normal;
message.IsBodyHtml = true; SmtpClient client = new SmtpClient();
client.Host = stmpSever;
client.UseDefaultCredentials = false;
client.Credentials= new NetworkCredential(mailfrom, mailfromPwd);
client.DeliveryMethod = SmtpDeliveryMethod.Network; try
{
client.Send(message);
return true;
}
catch
{
return false;
}

以此实现第一种方式的发送邮件方式,
第二种:利用 System.Web.Helpers 下面的WebMail 类实现发送邮件的方式。
附上代码:

       WebMail.SmtpServer = "smtp.qq.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "*************@qq.com"; //进行QQ邮箱相关配置 用于发送邮件的地址
WebMail.Password = "**************";
WebMail.From = "********@qq.com"; // 用于发送邮件的地址 一般情况下与 username 相同
WebMail.Send(目标邮箱, 邮件主题, 邮件内容);

即可发送,附上微软的官方文档 https://docs.microsoft.com/en-us/previous-versions/aspnet/gg547987(v%3Dvs.111) 以及w3c参考手册 http://home.ustc.edu.cn/~xie1993/aspnet/webpages-ref-webmail.html
以上为自己的demo,作为刚入行的菜鸟,以此记录一下自己的小收获,不足之处敬请各位谅解和指正,感谢

使用C#代码发送邮件,不完整的demo的更多相关文章

  1. MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式

    MVC的验证(模型注解和非侵入式脚本的结合使用)   @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...

  2. yagmail四行代码发送邮件

    yagmail四行代码发送邮件 import yagmail # 链接邮箱服务器 yag = yagmail.SMTP(user="xxxx@163.com", password= ...

  3. spring boot 业务场景简单,代码完整的demo们

    源码地址:https://github.com/zhzhair/spring-boot-examples.git 开发环境:windows,jdk8,spring boot2.1.4

  4. JavaMail发送邮件的笔记及Demo

    最近碰到一个需求,就是注册用户时候需要向用户发送激活邮箱,于是照着网上搜来的demo自己试着运行了一下,发件时我用的是网易163邮箱,收件时用QQ邮箱,运行后报了一个错误: 网络上搜索解决方式,多次尝 ...

  5. JAVA代码发送邮件示例和解释

    下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,好在昨晚终于走通代码成功以163邮箱发送邮件到qq邮 ...

  6. JAVA代码发送邮件示例和解释(二)

    之前有使用过一次在程序中发邮件的功能,也写了一篇相关的笔记,当时使用的是163邮箱,经过测试多个163账号都是可行的.但是最近把账号换成中国移动@chinamobilesz.com这种结尾的时候,却一 ...

  7. Dynamics 365使用代码发送邮件给指定邮箱地址

    摘要: 微软动态CRM专家罗勇 ,回复303或者20190213可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当然,首先要 ...

  8. 代码高亮插件——wangHightLighter.js——demo演示

    wangHighLighter.js demo 语言:   主题: 转换   说明: wangHightLighter.js是一个可以将代码高亮显示的javascript小插件,支持常用的20多语言. ...

  9. java后台代码发送邮件

    1:安装  eyoumailserversetup 易邮邮件服务器 注册账号 2:安装Foxmail 登录以后会有个还原页面 3:测试 4:java 代码编写 配置文件: mail.host=http ...

随机推荐

  1. selenium之 chromedriver与chrome版本映射表

    看到网上基本没有最新的chromedriver与chrome的对应关系表,便兴起整理了一份如下,希望对大家有用: chromedriver版本 支持的Chrome版本 v2.40 v66-68 v2. ...

  2. Vue.js:模版语法

    ylbtech-Vue.js:模版语法 1.返回顶部 1. Vue.js 模板语法 Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vu ...

  3. 1041 Be Unique

    题意:找到一串数字序列中首个出现的不重复的数字. 思路:用哈希,因为数值大小在[1,10^4],所以可以直接开数组.输入数据时记录每个数字出现过的次数.然后遍历原序列,遇到第一个次数为1的数字就是所求 ...

  4. C#简单操作app.config文件

    即将操作的app.config文件内容如下 <?xml version="1.0" encoding="utf-8"?> <configura ...

  5. ARM-Linux内核移植之(一)——内核启动流程分析

    内核版本:2.6.22  为什么要采用这样一个较低的版本进行移植了,因为韦东山大牛说了,低版本的才能学到东西,越是高版本需要移植时做的工作量越少,学的东西越少. 内核启动分为三个阶段,第一是运行hea ...

  6. 实验吧CTF题库-隐写术(部分)

    Spamcarver 用kali下载图片 root@sch01ar:~# wget http://ctf5.shiyanbar.com/stega/spamcarver/spamcarver.jpg ...

  7. springboot成神之——springboot入门使用

    springboot创建webservice访问mysql(使用maven) 安装 起步 spring常用命令 spring常见注释 springboot入门级使用 配置你的pom.xml文件 配置文 ...

  8. CRF++评测脚本CoNLL 2000

    关于CRF++工具如何使用这里就不再赘述了,网上相关资源很多,如官方提供的http://crfpp.googlecode.com/svn/trunk/doc/index.html.虽然http://w ...

  9. 11-EasyNetQ之多态发布和订阅

    你能够订阅一个接口,然后发布基于这个接口的实现. 让我们看下一个示例.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name ...

  10. linux中memset的正确用法

    linux中memset的正确用法 [起因]希望对各种类型的数组进行初始化,避免野值 [函数头文件] 提示:在linux中可以在terminal中输入 "man memset"进行 ...