关于.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中邮件发送的开发,实际 ...
随机推荐
- springcloud(第三篇)springcloud eureka 服务注册与发现 *****
http://blog.csdn.net/liaokailin/article/details/51314001 ******************************************* ...
- git clone --early EOF
出现这个问题可能需要重新检查以下方面: 1. Android studio Git 的安装地址: ..../Git/cmd/git.exe 记得在环境变量 --Path 中进行配置: ,..../G ...
- sim800 gprs发送数据的AT流程
switch(send_flag) { case 1: uart_send(&huart4,"AT\r\n",4); //AT break; case 2: uart_se ...
- SQL DDL
Sql语言被分为四大类:数据查询语言(DQL),数据操纵语言(DML),数据定义语言(DDL),数据控制语言(DCL). 1. 数据查询语言(DQL) 数据查询语言基本结构由select子句,from ...
- ps切图抠图详解-web前端(转)
网页设计在技术层面上,第一步是美工做出网页效果图,第二步就是网页前端进行网页切图.网页切图工具常用的有fireworks.PS,这里使用PS进行网页切图. 我们通过设计稿,得到我们想要的产出物(如.p ...
- 点开看看please
- PHP global 关键字
global关键字用于在函数内部访问全局变量. <?php $x = 5; $y = 10; function myTest(){ global $x,$y; $x = $x+$y; } myT ...
- jrebel注意事项
-Xms2048m -Xmx2048m -XX:MaxPermSize=4096m -noverify -javaagent:C:\Users\Administrator\.IntelliJIdea2 ...
- 使用wait()与notify()实现线程间协作
调用sleep()和yield()的时候锁并没有被释放,而调用wait()将释放锁.这样另一个任务(线程)可以获得当前对象的锁,从而进入它的synchronized方法中.可以通过notify()/n ...
- lock
#ifndef lock_h #define lock_h #include <stdint.h> #include <string.h> #include "myd ...