C# WinFrom 发送邮件
C# Winforms 发送邮件

发送邮件时用到以下来个命名空间:

using System.Net;

using System.Net.Mail;

发送邮件的发信人邮箱必须使用smtp协议的邮箱,例如163、126、sina 等邮箱(但是163、226的早期注册的用户使用了些协议,126邮箱从06年6六月份后的注册的邮箱都不可用,而sina邮箱里可以自己设置是否启用smtp协议)其它邮箱类同

以126为例 smtp服务器为:smtp.126.com

以下为程序截图:

以下为全部代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.Net.Mail;

namespace Mail

{

public partial class mailone : Form

{

public mailone()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if (fjr.Text.Length == 0 || sjr.Text.Length == 0)

{

MessageBox.Show("请填写Email地址", "填写不完整", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);

return;

}

try

{

YanZheng(fjr.Text, sjr.Text); //验证邮件格式

}

catch (EmailErrorException ex)

{

MessageBox.Show(ex.Message, "Email格式错误", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);

return;

}

string fjrtxt = fjr.Text;

string mmtxt = mm.Text;

string sjrtxt = sjr.Text;

string zttxt = zt.Text;

string fjtxt = fj.Text;

string nrtxt = nr.Text;

string[] fasong = fjrtxt.Split('@');

string[] fs = fasong[1].Split('.');

//发送

SmtpClient client = new SmtpClient("smtp." + fs[0].ToString().Trim() + ".com"); //设置邮件协议

client.UseDefaultCredentials = false;//这一句得写前面

client.DeliveryMethod = SmtpDeliveryMethod.Network; //通过网络发送到Smtp服务器

client.Credentials = new NetworkCredential(fasong[0].ToString(), mmtxt); //通过用户名和密码 认证

MailMessage mmsg = new MailMessage(new MailAddress(fjrtxt), new MailAddress(sjrtxt)); //发件人和收件人的邮箱地址

mmsg.Subject = zttxt; //邮件主题

mmsg.SubjectEncoding = Encoding.UTF8; //主题编码

mmsg.Body = nrtxt; //邮件正文

mmsg.BodyEncoding = Encoding.UTF8; //正文编码

mmsg.IsBodyHtml = true; //设置为HTML格式

mmsg.Priority = MailPriority.High; //优先级

if (fj.Text.Trim() != "")

{

mmsg.Attachments.Add(new Attachment(fj.Text));//增加附件

}

try

{

client.Send(mmsg);

MessageBox.Show("邮件已发成功");

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

private void button3_Click(object sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

fj.Text = openFileDialog1.FileName; //得到附件的地址

}

}

private void button2_Click(object sender, EventArgs e)

{

this.Close();

}

private bool YanZheng(string fmail, string smail)

{

string[] subStrings = smail.Split('@');

string[] subStrings1 = fmail.Split('@');

if (subStrings.Length != 2 || subStrings1.Length != 2)

{

throw new EmailErrorException();

}

else

{

int index = subStrings[1].IndexOf(".");

int index1 = subStrings1[1].IndexOf(".");

if (index <= 0 || index1 <= 0)

{

throw new EmailErrorException();

}

if (subStrings[1][subStrings[1].Length - 1] == '.' || subStrings1[1][subStrings[1].Length - 1] == '.')

{

throw new EmailErrorException();

}

}

return true;

}

}

}

//以下为程序类文件,用于验证填写邮箱地址是否正确

using System;

using System.Collections.Generic;

using System.Text;

namespace Mail

{

public class EmailErrorException : ApplicationException

{

public string _message;

public EmailErrorException()

: base()

{

_message = null;

}

public EmailErrorException(string message)

: base()

{

_message = message.ToString();

}

public EmailErrorException(string message, Exception myNew)

: base(message, myNew)

{

_message = message.ToString();

}

public override string Message

{

get

{

return "Email格式错误。";

}

}

}

}

C# WinFrom 发送邮件的更多相关文章

  1. C# Winfrom 发送邮件验证码&Timer控件

    邮件发送: //定义一个全局的string类型的验证码: string yzm = ""; //定义一个字符串,这里面包含所有需要的验证码的元素: string a = " ...

  2. asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码

    public static bool SendEmail(string mailTo, string mailSubject, string mailContent)        {         ...

  3. 利用SQLServer数据库发送邮件

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...

  4. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

  5. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  6. 技术笔记:Indy控件发送邮件

    工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...

  7. mono中发送邮件并保存本次收件人的地址

    在ios端mono开发中,发送邮件可以选择调用ios原生email程序.有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出. 首先第一种方式的代 ...

  8. Azure 上通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...

  9. 使用nodemailer发送邮件

    今天闲来无事,一时兴起看了下如果使用javascript来发送邮件.经过调研发现,nodeJs可以实现这个功能. 具体的步骤如下: 1.安装依赖 npm install nodemailer -g ( ...

随机推荐

  1. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第2节 线程实现方式_1_并发与并行

    并发,相当于 一个人吃两个馒头,吃一口这个再吃一口另外一个.这里是cpu一会执行任务1,一会又执行任务2 并行,相当于两个人 吃两个馒头,各自吃各自的,这样速度就会快

  2. Week 10 - 474. Ones and Zeroes

    474. Ones and Zeroes In the computer world, use restricted resource you have to generate maximum ben ...

  3. Winform 开源控件库( Sheng.Winform.Controls)

    升讯威 .Net WinForm 控件库提供了超过15种 Winform 控件,你可以直接使用本控件库,更可以通过本控件库学到 Winform 控件开发的方法和理念. 你可以学习到: 如何基于 Con ...

  4. Mac--PHP已经开启gd扩展验证码不显示

    错误显示:Call to undefined function imagettftext() 原因: mac系统中自带的php的gd库中,缺少对freetype的支持,导致图片无法显示. 解决: 1 ...

  5. mybatis工作流程&源码详解

    该篇主要讲解的是mybatis从seesion创建到执行sql语句的流程 流程主线: 1.创建SqlSessionFactoryBuilder 2.创建会话工厂SqlSessionFactory 3. ...

  6. 简单实现一个textarea自适应高度

    textarea自适应的实现方法很多,原理其实比较简单:监听textarea的input或者键盘事件,获取元素的scrollHeight,重置textarea元素的高度. 预览地址:textarea ...

  7. Kali系统 metasploit 使用教程

    基础配置 由于kali 2.0 已经没有metasploit 这个服务了,所以service metasploit start 的方式不起作用. 在kali 2.0中启动带数据库支持的MSF方式如下: ...

  8. SQL中的like '%%‘查询

    一,我们正常使用like时,这是有两个条件的模糊查询 select *From Test where UserName like '%m%' and UserName like '%a%' 二,但这时 ...

  9. 前端之CSS基础

    前端之CSS 1. CSS CSS定义如何显示HTML元素. 当浏览器读到一个样式表,他就会按照这个样式表来对文档进行格式化(渲染). 3.CSS语法 1)CSS实例 每个CSS由两部分组成: 选择器 ...

  10. [简单到爆]eclipse-jee-neon的下载和安装

    Eclipse的下载安装: 访问https://www.eclipse.org/downloads/eclipse-packages/ 选择Eclipse IDE for Java EE Develo ...