.NET 类库中已经有现成的封好的类库了,只要引用System.Net.Mail命名空间即可实现发邮件的功能

以下是代码

    public class SendMail
{
private string FileName;//附件路径
public string filename
{
set { FileName = value; }
}
private string ServerHost;//承载服务器 如smtp.qq.com
public string serverhost
{
set { ServerHost = value; }
}
private Int32 Port;//端口
public Int32 port { set { Port = value; } }
private string MailAddressFrom;//发信人邮箱
public string mailaddressfrom { set { MailAddressFrom = value; } }
private string Psw;//密码
public string psw { set { Psw = value; } }
private string MailAddressTo;//收信人邮箱
public string mailaddressto { set { MailAddressTo = value; } }
private string Message;//邮件信息
public string message { set { Message = value; } }
private string ShowName;//发送人显示名
public string showname { set { ShowName = value; } }
private string MailTitle;//发送人显示名
public string mailtitle { set { MailTitle = value; } }
public string result; SmtpClient smtpclient = null;//设置smtp协议
MailAddress MailAddress_from = null;//设置发信人的地址 密码
MailAddress MailAddress_to = null;//设置收信人的地址
MailMessage MailMessage = new MailMessage();
FileStream filestream = null;//附件文件流 /// <summary>
/// 设置smtp服务器信息
/// </summary>
/// <param name="ServerHost">smtp服务器名</param>
/// <param name="port">端口号</param>
private void setSmtpClient(string ServerHost, Int32 port)
{
smtpclient = new SmtpClient();
smtpclient.Host = ServerHost;//指定smtp服务名
smtpclient.Port = port;//指定端口号
smtpclient.Timeout = ;//超时的时间
} /// <summary>
/// 验证发件人信息
/// </summary>
/// <param name="MailAddress">发件人地址</param>
/// <param name="Psw">密码</param>
private void setMailAddress_from(string MailAddress, string Psw)
{
//创建服务器认证
NetworkCredential networkcredential = new NetworkCredential(MailAddress, Psw);
//实例化发件人地址
MailAddress_from = new System.Net.Mail.MailAddress(MailAddress, Psw);
//指定发件人信息(邮箱地址和密码)
smtpclient.Credentials = new System.Net.NetworkCredential(MailAddress_from.Address, Psw);
} /// <summary>
/// 检测附件大小
/// </summary>
/// <param name="filename">附件路径</param>
/// <returns></returns>
private Boolean checkAttachmentSize()
{
try
{
filestream = new System.IO.FileStream(FileName, FileMode.Open);
string name = filestream.Name;
int size = (int)filestream.Length;
filestream.Close();
if (size > * * )
return false;
return true;
}
catch (IOException ioerr)
{
throw (ioerr);
}
} public void Sendmail()
{
if (!String.IsNullOrEmpty(FileName))
{
if (!checkAttachmentSize())
{
return;
}
}
//初始化smtp信息
try
{
setSmtpClient(ServerHost, Port);
}
catch (Exception err)
{
throw err;
}
//验证发件地址和密码
try
{
setMailAddress_from(MailAddressFrom, Psw);
}
catch (Exception err)
{
throw err;
}
try
{
MailAddress_to = new MailAddress(MailAddressTo);
MailMessage.To.Add(MailAddress_to);
}
catch (Exception err)
{
throw err;
}
MailMessage.From = MailAddress_from;
MailMessage.Subject = MailTitle;
MailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
MailMessage.Body = Message;
MailMessage.BodyEncoding = System.Text.Encoding.UTF8;
MailMessage.Attachments.Clear();
MailMessage.Attachments.Add(new Attachment(FileName.Trim(), MediaTypeNames.Application.Octet));
smtpclient.SendAsync(MailMessage, "");
result = "发送成功!";
}
}

以上只是做我样例,具体还没封号,仅作参考。

另外需要设置你发件邮箱的SMTP,有些邮箱默认是关闭的,如QQ邮箱;

调用代码:

static void Main(string[] args)
{
SendMail sendmail = new SendMail();
sendmail.filename = @"F:\《高等数学》下册期末总复习.rar";
sendmail.mailaddressfrom = @"@163.com";
sendmail.mailaddressto = @".com";
sendmail.mailtitle = "你是个SB!";
sendmail.message = "到后个将发动机得更快睡觉啊i偶的是解放军的声卡将公开讲的是卡就卡价\n格看电视剧开工的静安寺髋关节阿盛开的吉萨头i额物体偶觉得刚打开\n数据库哥四大皆空担惊受恐讲噶速度借我抵抗力噶就是德拉科价格按时";
sendmail.port = 25;
sendmail.psw = "";
sendmail.serverhost = "smtp.163.com";
sendmail.showname = "TommyBiteMe";
sendmail.Sendmail();
Console.WriteLine("{0}",sendmail.result);
Console.ReadLine();
}

关于.NET 的邮件发送类的更多相关文章

  1. PHP 邮件发送类

    mail.php <?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件,可以多收件人,多抄送,多秘密抄送,带附件的邮件 * 需要的php扩展,sockets和Filei ...

  2. C#邮件发送类 简单实用 可自定义发件人名称

    上图看效果 MailHelper: public class MailHelper { public bool SendMail(MailSender sender,out string errorM ...

  3. Log4j的邮件发送类SMTPAppender改造

    在开发过程中,我们有时需要将重要的错误日志通过邮件发送给相关的责任人,这样能即时发现错误,即时解决.如使用Log4J,一般会做如下配置: log4j.rootLogger = debug,mail # ...

  4. asp.net 邮件发送类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. 关于 PHPMailer 邮件发送类的使用心得(含多文件上传)

    This is important for send mail PHPMailer 核心文件 class.phpmailer.php class.phpmaileroauth.php class.ph ...

  6. 利用phpmailer类邮件发送

    <?php require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录 $mail = new PHPMailer(); //建立邮 ...

  7. 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送

    第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php 第二步: 将phpmailer文件 ...

  8. 一个用于发送HTML格式邮件的类

    以下类是在网上孙钰佳的版本上改写而来,主要变化了三点:1.去掉了附件部分:2.形式从纯Java类改成可注入方式:3.to,cc和bcc都变成了一堆人,以前是一个人. 以下是Java类的代码: impo ...

  9. J2EE 邮件发送那些事儿

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

随机推荐

  1. 【Java】集合_学习笔记

    一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...

  2. 12 个CSS 高级技巧汇总[转载]

    使用 :not() 在菜单上应用/取消应用边框 给body添加行高 所有一切都垂直居中 逗号分隔的列表 使用负的 nth-child 选择项目 对图标使用SVG 优化显示文本 对纯CSS滑块使用 ma ...

  3. JS刷新父窗口的几种方式<转>

    常用的有:   window.opener.location.reload();    和  window.location.reload(); 浮层内嵌iframe及frame集合窗口,刷新父页面的 ...

  4. webpack学习笔记--安装

    1 首先要安装node  Node.js 自带了软件包管理器 npm,Webpack 需要 Node.js v0.6 以上支持 2 npm install webpack -g 通常我们会将 Webp ...

  5. angularjs路由

    需要引入angular.js,angular-ui-router.min.js <ul> <li><a href="#home">首页</ ...

  6. OPENGL半透明图像产生黑色光环

    OPENGL提供了多种多样的混合方法,我们很容易就能实现诸如 叠加.变亮等图像混合. 我们知道一般带透明度的图像是RGBA四个通道来存储,最常的glBlendFunc是 glBlendFunc(GL_ ...

  7. DevExpress GridView属性说明

    转自http://www.cnblogs.com/-ShiL/archive/2012/06/08/ShiL201206081335.html (一)双击展开,收缩字表 1 Private Sub E ...

  8. outline使用方法,outline与border的区别:

    在浏览器里,当鼠标点击或使用Tab键让一个链接或者一个radio获得焦点的时候,该元素将会被一个轮廓虚线框围绕.这个轮廓虚线框就是 outline . outline 能告诉用户那一个可以激发事件的h ...

  9. [原创]VM虚拟机Centos6.4网络配置。

    关于虚拟机VMware 3种网络模式(桥接.nat.Host-only)的工作原理http://www.cnblogs.com/hehexiaoxia/p/4042583.html 操作环境 主机:W ...

  10. shell脚本中的几个括号总结(小括号/大括号/花括号)--from:http://www.cnblogs.com/hanyan225/archive/2011/10/06/2199652.html

    在Shell中的小括号,大括号结构和有括号的变量,命令的用法如下: 1.${var}2.$(cmd)3.()和{}4.${var:-string},${var:+string},${var:=stri ...