关于.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中邮件发送的开发,实际 ...
随机推荐
- SQL Server Reporting Service(SSRS) 第四篇 SSRS 用法总结
1. 如何让表头在每页显示(译) A. 打开高级模式: 在分组栏中点击Column Goups右侧的箭头选择高级模式; B. 找到第一个Static组 在Row Groups区域中(注意不是Colu ...
- ROS学习笔记(七)——节点
NEW 1 #打开新的终端,以后不再注释$ sudo apt-get install ros-<distro>-ros-tutorials #下载一个教学用的仿真器$ roscore #运 ...
- 1奶茶店创业成本: 2发饰品加盟店创业成本 3眼镜行业店创业成本 从“程序员转行卖烧饼”想到IT人创业
总结: -------奶茶店创业成本: 而这个奶茶店初期投资是:3万元加盟费+1万元保证金+8000装修+两万设备(冰柜.展示柜.收银机等等).别说赚钱,什么时候把初期投资赚回来呀! 一个店的利润就是 ...
- Tableau(数据抽取)
如果启用的是标准的企业数据库,TABLEAU中做实时分析会比较困难,例如以下情况:(1)不在办公室,无法连接到数据库:(2)在Microsoft SQL Server或者Oracle,在数据库很大或者 ...
- HashSet和HashMap的区别
HashSet和HashMap的区别.Java的HashSet类是由哈希表支持.它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用 null 元素.HashSet类为基本操作提供 ...
- python——赋值与深浅拷贝
初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及其存储 在详细的了解python中赋 ...
- Unity脚本时间执行顺序
1.Awake Awake用于脚本唤醒.此方法为系统执行的第一个方法,用于脚本的初始化,在脚本的生命周期中只执行一次. 2.Start Start方法在Awake之后执行,在脚本生命周期中只执行一次. ...
- setWinldowRgn
CRgn(HRGN) SetWindowRgn setRgn{ CRgn rgnRect; CRgn rgnHole; //获取窗口大小 CRect rcWnd; GetWindowRect(& ...
- Takeown--夺取文件or文件夹所有权
强制将当前目录下的所有文件及文件夹.子文件夹下的所有者更改为管理员组(administrators)命令:takeown /f * /a /r /d y 将所有d:\documents目录下的文件.子 ...
- jquery.fullPage.js全屏滚动插件教程演示
css部分(此处需要导入jquery.fullPage.css) <style> .section { text-align: center; font: 50px "Micro ...