.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. numpy函数白板

    numpy.linspace(start, stop, num=50, endpoint=True, retstep=False) start 起始位置 stop 终止位置 num 个数 endpoi ...

  2. centos6.8服务器部署svn

    1. 安装svn yum list svn* yum install subversion 2. 测试svn安装是否成功 svnserve –version 3. 创建代码仓库 mkdir /usr/ ...

  3. flask配置qq邮箱发送邮件

    1.第三方登录qq邮箱不是使用邮箱密码,而是使用独立的授权码: 2.开始在python程序中使用os.environ.get()一直无法获取到环境变量,即使是用source命令重新加载配置文件后使用e ...

  4. REST架构之Apache Wink

    Apache Wink是一个使用简单,稳定的Java框架,用于创建RESTful web services应用程序.Wink包括了一个服务器端模块和一个客户端模块,用于帮助开发者快速高效的开发REST ...

  5. 20145218&20145240 《信息安全系统设计基础》实验三 实时系统的移植

    课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡献大小排名)20145240 20145218 指导教师:娄嘉鹏 实验日期:2016.11.17 实验时 ...

  6. centos7查看端口命令

    查看Centos端口命令: # netstat -lntp #查看监听(Listen)的端口# netstat -antp #查看所有建立的TCP连接其他关于查看服务器网络信息命令:1.查看Linux ...

  7. 求子串-KPM模式匹配-NFA/DFA

    求子串 数据结构中对串的5种最小操作子集:串赋值,串比较,求串长,串连接,求子串,其他操作均可在该子集上实现 数据结构中串的模式匹配 KPM模式匹配算法 基本的模式匹配算法 //求字串subStrin ...

  8. CentOS(RedHat)命令行永久修改IP地址、网关、DNS

    1.修改IP地址vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 #网卡名称BOOTPROTO=static #获取ip的方式(stat ...

  9. js判断是手机还是电脑访问网站

    js判断是手机还是电脑访问网站                               <script type="text/javascript"> <!- ...

  10. occ添加新的捕捉模式

    Load (theSelection, theShape, theType, theDeflection, theDeviationAngle, isAutoTriangulation, thePri ...