关于.NET 的邮件发送类
.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 的邮件发送类的更多相关文章
- PHP 邮件发送类
mail.php <?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件,可以多收件人,多抄送,多秘密抄送,带附件的邮件 * 需要的php扩展,sockets和Filei ...
- C#邮件发送类 简单实用 可自定义发件人名称
上图看效果 MailHelper: public class MailHelper { public bool SendMail(MailSender sender,out string errorM ...
- Log4j的邮件发送类SMTPAppender改造
在开发过程中,我们有时需要将重要的错误日志通过邮件发送给相关的责任人,这样能即时发现错误,即时解决.如使用Log4J,一般会做如下配置: log4j.rootLogger = debug,mail # ...
- asp.net 邮件发送类
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 关于 PHPMailer 邮件发送类的使用心得(含多文件上传)
This is important for send mail PHPMailer 核心文件 class.phpmailer.php class.phpmaileroauth.php class.ph ...
- 利用phpmailer类邮件发送
<?php require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录 $mail = new PHPMailer(); //建立邮 ...
- 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php 第二步: 将phpmailer文件 ...
- 一个用于发送HTML格式邮件的类
以下类是在网上孙钰佳的版本上改写而来,主要变化了三点:1.去掉了附件部分:2.形式从纯Java类改成可注入方式:3.to,cc和bcc都变成了一堆人,以前是一个人. 以下是Java类的代码: impo ...
- J2EE 邮件发送那些事儿
距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...
随机推荐
- svn使用
1 svn地址: svn://www.svn999.com/annie123.test12345 2 svn 账户: 账户使用时期:项目checkout时期 会提示键入用户名密码 3 新增文件 (1) ...
- text-transform属性
text-transform -- 定义文本的大小写状态,此属性对中文无意义 取值:capitalize | uppercase | lowercase | none | inherit capita ...
- python——SQL基本使用
终于学到数据库操作了,这意味着什么?以后再也不用从文件里读写数据了,过程实在太复杂了~~~为了纪念这个激动人心的时刻,一定要写一篇博客! 使用mysql数据库——增 插入一条数据 首先,还是先解释一下 ...
- 并发编程 01—— ThreadLocal
Java并发编程实践 目录 并发编程 01—— ThreadLocal 并发编程 02—— ConcurrentHashMap 并发编程 03—— 阻塞队列和生产者-消费者模式 并发编程 04—— 闭 ...
- 许愿墙的搭建(基于Apache+php+mysql)
一.准备部分:CentOS 7 , Linux 文本 各自配置好环境 二. CentOS 7准备如下: yum install httpd -y #安装httpd yum install php ...
- WeCenter二次开发教程(一):熟悉模板结构
<1>程序文件目录介绍: app – 应用目录 models – 模型目录 plugins – 插件目录 static – 静态文件 system – 系统目录 views – 模板目录 ...
- 【转】js插件zClip实现复制到剪贴板功能
相信这个功能大家平时上网经常能碰到,以前也没怎么留意怎么实现的,直到项目中需要. 网上一搜一大堆,单纯使用js方法也不是没有,但是由于各浏览器的安全机制不同,不是跨浏览器的.去看了几个常用的网站,都是 ...
- jsessionid 导致重定向404的问题
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletResponse.html#encod ...
- css3 transfrom变换
Transform 转换 CSS3中的转换允许我们对元素进行旋转.缩放.移动或倾斜,它分为2D转换 或3D转换 在CSS2时代,如果要做一些图片转换角度,都依赖于图片.flash或JavaScript ...
- 四核RP4412开发板使用Xshell连接的com口应与电脑端口一致
使用Xshell工具连接的com口要与电脑接的com口端号一样. 问:我的RP4412开发板现在按照<烧写视频>操作,在XSHELL软件里找不到板子的串口号.我用的XP系统装了USB转串口 ...