C#实现发送和接收pop3邮件方法
必须引入Interop.jmail.dll应用
/// <summary>
/// 收取新邮件、不删除老邮件、收取邮件后写入数据库
/// </summary>
public static void GetNewMailIntoDataBase(string UserName,string PassWord,string PopServer,int Port,DateTime MaxDate)
{
POP3 NewMail = new POP3();
NewMail.Connect(UserName, PassWord, PopServer, Port);
for (int i = 1; i <= NewMail.Count; i++)
{
//判断是否跟当前最大的时间作比较,大于当前时间就处理
DateTime CurrentEmailDate = DateTime.Now;
try
{
CurrentEmailDate = DateTime.Parse(NewMail.Messages[i].Date.ToString());
}
catch
{ }
try
{
if (CurrentEmailDate.CompareTo(MaxDate) > 0)
{
string EmailFuJian = "";
for (int j = 0; j < NewMail.Messages[i].Attachments.Count; j++)
{
try
{
string FileName = DateTime.Now.Ticks.ToString() + NewMail.Messages[i].Attachments[j].Name;
NewMail.Messages[i].Attachments[j].SaveToFile(System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\MailAttachments\\" + FileName);
if (EmailFuJian.Trim().Length > 0)
{
EmailFuJian = EmailFuJian + "|MailAttachments/" + FileName;
}
else
{
EmailFuJian = "MailAttachments/" + FileName;
}
}
catch (Exception e)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + e.Message.ToString() + "');</script>");
}
}
ZWL.BLL.ERPNetEmail MyModel = new ZWL.BLL.ERPNetEmail();
MyModel.EmailContent = NewMail.Messages[i].Body;
MyModel.EmailState = "未读";
MyModel.EmailTitle = NewMail.Messages[i].Subject;
MyModel.FromUser = NewMail.Messages[i].FromName + "(" + NewMail.Messages[i].From + ")";
MyModel.FuJian = EmailFuJian;
try
{
MyModel.TimeStr = DateTime.Parse(NewMail.Messages[i].Date.ToString());
}
catch
{
MyModel.TimeStr = DateTime.Now;
}
MyModel.ToUser = ZWL.Common.PublicMethod.GetSessionValue("UserName");
MyModel.Add();
}
}
catch (Exception ee)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + ee.Message.ToString() + "');</script>");
}
}
NewMail.Disconnect();
}
/// <summary>
/// 发送邮件到网络
/// </summary>
public static void SendMail(string UserName, string PassWord, string SMTPServer, string Subject, string body, string FromEmail, string ToEmail,string FuJianList)
{
try
{
Message Jmail = new Message();
DateTime t = DateTime.Now;
//Slient属性:如果设置为true,Jmail不会抛出例外错误,Jmail.Send()会根据操作结果返回True或False
Jmail.Silent = false;
//Jmail创建的日志,提前loging属性设置为True
Jmail.Logging = true;
//字符集,缺省为"US-ASCII";
Jmail.Charset = "GB2312";
//信件的ContentType,缺省为"Text/plain",字符串如果你以Html格式发送邮件,改为"Text/Html"即可。
//Jmail.ContentType = "text/html";
//添加收件人
Jmail.AddRecipient(ToEmail, "", "");
Jmail.From = FromEmail;
//发件人邮件用户名
Jmail.MailServerUserName = UserName;
//发件人邮件密码
Jmail.MailServerPassWord = PassWord;
//设置邮件标题
Jmail.Subject = Subject;
//邮件添加附件(多附件的话,可以再加一条Jmail.AddAttachment("c:\test.jpg",true,null);就可以搞定了。
//注意:为了添加附件,要把上面的Jmail.ContentType="text/html";删掉,否则会在邮件里出现乱码
string[] FuJian = FuJianList.Split('|');
for (int kk = 0; kk < FuJian.Length; kk++)
{
if (FuJian[kk].Trim().Length > 0)
{
Jmail.AddAttachment(System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\" + FuJian[kk].ToString(), true, null);
}
}
//邮件内容
Jmail.Body = body + t.ToString();
//Jmail发送的方法
Jmail.Send(SMTPServer, false);
Jmail.Close();
}
catch (Exception e)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + e.Message.ToString() + "');</script>");
}
}
C#实现发送和接收pop3邮件方法的更多相关文章
- C#邮件接收系统核心代码(接收POP3邮件IMAP邮件)
/* * Created by SharpDevelop. * User: Administrator * Date: 2013/11/18 * Time: 20:55 * * To change t ...
- SMTP协议及POP3协议-邮件发送和接收原理(转)
本文转自https://blog.csdn.net/qq_15646957/article/details/52544099 感谢作者 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 ...
- JavaMail发送和接收邮件API(详解)
一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供的JavaMa ...
- javaMail 邮件发送和接收示例,支持正文图片、html、附件(转)
转自:https://blog.csdn.net/star_fly4/article/details/52037587 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文 ...
- JavaMail发送和接收邮件
一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...
- Android Java使用JavaMail API发送和接收邮件的代码示例
JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...
- Java邮件发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- (转载)JavaWeb学习总结(五十一)——邮件的发送与接收原理
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4209586.html 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电 ...
- JavaWeb学习总结(五十一)——邮件的发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
随机推荐
- Linux进程间通信——使用消息队列
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道 一.什么是消息队列 消息队列提 ...
- item Collaborative Filtering
算法步骤: 1.计算物品相似度 2.根据用户购买记录,推荐相似物品 物品相似度定义: A. 购买i的人里面,有多少比例购买了j 缺点(推荐系统需要能挖掘长尾信息,此处若j很热门,则w趋 ...
- 全国计算机等级考试二级教程-C语言程序设计_第14章_结构体、共用体和用户定义类型
函数的返回值是结构体类型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct ...
- uva 10453 - Make Palindrome(dp)
题目链接:10453 - Make Palindrome 题目大意:给出一个字符串,通过插入字符使得原字符串变成一个回文串,要求插入的字符个数最小,并且输出最后生成的回文串. 解题思路:和uva 10 ...
- HashMap 的遍历key与value的方法
HashMap最经常使用的使用方法是依据key增删改查value,有时候会须要知道一个HashMap有多少个keys以及这些keys都是什么,能够用以下的代码实现. 方法1: Map map = ne ...
- Haffman算法(C++)
Huffman编码,C++实现,只是为了说明大致的思路,还有很多不完美之处,比如在输入数据超出限制等条件下会出现错误. #include<iostream> #include<str ...
- ASP.NET设置焦点到输入框
Page.SetFocus(txtLoginName);
- Javascript数组中shift()和push(),unshift()和pop()操作方法使用
Javascript为数组专门提供了push和pop()方法,以便实现类似栈的行为.来看下面的例子: var colors=new Array(); //创建一个数组 var count= ...
- Fedora 20忘记root密码
1.忘记root密码的情况下.用sudo账户$sudo su就行了. 2.直接sudo passwd root就重置了roor密码了.
- Node.js(转) -- 临时来说还看不懂!
转自:http://blog.jobbole.com/53736/ 本文由 伯乐在线 - Lellansin 翻译.未经许可,禁止转载!英文出处:toptal.欢迎加入翻译组. 介绍 JavaScri ...