- 浏览: 185445 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
masuweng:
好好
与ant结合使用yguard -
lenomon:
你也可以看看这个,Linux同步时间命令ntpdate
Linux与远程时间服务器同步 -
木叶之舟:
我这里有个疑问,就是我想通过拦截外键的属性,该怎样实现呢?
比 ...
springside的filter查询 -
dongbiying:
好!
与ant结合使用yguard -
javaray:
遨豪(大连)科技有限公司自2007年与Liferay,Inc合 ...
Liferay的CAS SSO实现思路
jmail收发邮件,发送邮件基于smtp协议,收邮件基于pop3协议,当然没有弄邮件服务器了,贴下代码,实在没什么好说的。
还有一点要记住smtp服务器的常用端口是25;pop3是110。
发邮件:
package wherever.zhj.mail; import java.util.ArrayList; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.Message.RecipientType; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class SMTPSendEmailBuilder { private String smtpName = null; private String userName = null; private String password = null; public SMTPSendEmailBuilder(String smtpName, String userName, String password) { this.smtpName = smtpName; this.userName = userName; this.password = password; } public void sendEmail(EmailMessage emessage) throws MessagingException { Properties props = new Properties(); props.put("mail.smtp.host", smtpName);// 指定SMTP服务器 props.put("mail.smtp.auth", "true");// 指定是否需要SMTP验证 Session mailSession = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(userName,password); } } ); mailSession.setDebug(true); MimeMessage msg=new MimeMessage(mailSession); msg.setSentDate(emessage.getSendDate()); msg.setSubject(emessage.getSubject()); msg.setFrom(new InternetAddress(emessage.getFrom())); msg.setRecipients(RecipientType.TO,this.getArrayAddress(emessage.getRecipients())); MimeBodyPart textBodyPart=new MimeBodyPart(); textBodyPart.setText(emessage.getContent()); Multipart container=new MimeMultipart(); container.addBodyPart(textBodyPart); if(emessage.isAttach()) { for(String filePath : emessage.getAttachNames()) { MimeBodyPart fileBodyPart=new MimeBodyPart(); FileDataSource fds = new FileDataSource(filePath); fileBodyPart.setDataHandler(new DataHandler(fds)); fileBodyPart.setFileName(fds.getName()); container.addBodyPart(fileBodyPart); } } msg.setContent(container); Transport.send(msg); } private Address[] getArrayAddress(ArrayList<String> listStr) throws AddressException { Address[] adds = new InternetAddress[listStr.size()]; for (int i=0;i<listStr.size();i++) { adds[i] = new InternetAddress(listStr.get(i)); } return adds; } }
收邮件:
package wherever.zhj.mail; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.Properties; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.FetchProfile; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Part; import javax.mail.Session; import javax.mail.Store; public class POP3ReceiverEmailBuilder { private Folder inbox = null; private Store store = null; private String popName = null; private String userName = null; private String password = null; public POP3ReceiverEmailBuilder(String popName, String userName, String password) { this.popName = popName; this.userName = userName; this.password = password; } /** 连接邮件服务器,获得所有邮件列表 */ public ArrayList<EmailMessage> getMail() throws Exception { Properties prop = new Properties(); prop.put("mail.pop3.host", popName); Session session = Session.getDefaultInstance(prop); session.setDebug(true); store = session.getStore("pop3"); store.connect(popName, userName, password); inbox = store.getDefaultFolder().getFolder("INBOX"); inbox.open(Folder.READ_ONLY); Message[] msg = inbox.getMessages(); FetchProfile profile = new FetchProfile(); profile.add(FetchProfile.Item.ENVELOPE); inbox.fetch(msg, profile); ArrayList<EmailMessage> listEMessage = new ArrayList<EmailMessage>(); for (Message message : msg) { if (message.isMimeType("text/*")) { listEMessage.add(handleText(message)); } else { listEMessage.add(handleMultipart(message)); } } this.close(); return listEMessage; } /** 处理文本邮件 */ public EmailMessage handleText(Message msg) throws Exception { EmailMessage emessage = handle(msg); emessage.setContent(msg.getContent().toString()); return emessage; } private ArrayList<String> getListString(Address[] arrayAddr) { ArrayList<String> listStr = new ArrayList<String>(); for (Address str : arrayAddr) { listStr.add(str.toString()); } return listStr; } private EmailMessage handle(Message message) throws MessagingException { EmailMessage emessage = new EmailMessage(); emessage.setFrom(message.getFrom()[0].toString()); emessage.setSendDate(message.getSentDate()); emessage.setSubject(message.getSubject()); emessage.setRecipients(getListString(message.getAllRecipients())); return emessage; } /** 处理非文本邮件 */ private EmailMessage handleMultipart(Message msg) throws Exception { String disposition; BodyPart part; EmailMessage emessage = handle(msg); Multipart mp = (Multipart) msg.getContent(); int mpCount = mp.getCount();// Miltipart的数量,用于除了多个part,比如多个附件 for (int m = 0; m < mpCount; m++) { part = mp.getBodyPart(m); disposition = part.getDisposition(); if (disposition != null && disposition.equals(Part.ATTACHMENT))// 判断是否有附件 { emessage.setAttach(true); emessage.addAttachs(part.getInputStream()); emessage.addAttachNames(part.getFileName()); } else { emessage.setContent(part.getContent().toString()); } } return emessage; } /** base64解码 */ private String base64Decoder(String s) throws Exception { sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); byte[] b = decoder.decodeBuffer(s); return (new String(b)); } /** 关闭连接 */ public void close() throws Exception { if (inbox != null) { inbox.close(false); } if (store != null) { store.close(); } } }
还有个javabean:
package wherever.zhj.mail; import java.io.File; import java.io.InputStream; import java.util.ArrayList; import java.util.Date; /**邮件对象*/ public class EmailMessage { private String subject = null; private String from = null; private ArrayList<String> recipients = new ArrayList<String>();//收件人集合 private Date sendDate = null; private String content = null; private ArrayList<InputStream> attachs = new ArrayList<InputStream>();//附件集合 private boolean isAttach = false; //是否有附件 private ArrayList<String> attachNames = new ArrayList<String>(); //附件名字 public ArrayList<String> getAttachNames() { return attachNames; } public void setAttachNames(ArrayList<String> attachNames) { this.attachNames = attachNames; } public void addAttachNames(String attachName) { this.attachNames.add(attachName); } public boolean isAttach() { return isAttach; } public void setAttach(boolean isAttach) { this.isAttach = isAttach; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public ArrayList<String> getRecipients() { return recipients; } public void setRecipients(ArrayList<String> recipients) { this.recipients = recipients; } public void addRecipients(String recipient) { this.recipients.add(recipient); } public Date getSendDate() { return sendDate; } public void setSendDate(Date sendDate) { this.sendDate = sendDate; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public ArrayList<InputStream> getAttachs() { return attachs; } public void addAttachs(InputStream attachs) { this.attachs.add(attachs); } public void setAttachs(ArrayList<InputStream> attachs) { this.attachs = attachs; } }
发表评论
-
用exp/imp远程操作数据库
2012-03-27 10:55 1179在http://icyheart.iteye.com/bl ... -
Eclipse for JEE 3.5.2 maven插件安装
2012-03-27 10:56 2592先安装gef插件,然后安装subclipse插件,最后安装m2 ... -
onkeypress,onkeydown,onkeyup区别 和 javascript event.keycode值大全
2010-08-05 17:32 4905onkeypress是在用户按下并放开任何字母数字键时发生 ... -
国王和100个囚犯
2010-01-15 11:27 922看到一个关于算法的帖子,总结了下跟帖的算法发表一下: 原贴地 ... -
搞懂java中的synchronized关键字
2009-12-12 17:55 18451、synchronized关键字的作用域有二种: 1 ... -
JAVA 30个基本知识
2009-12-12 17:53 8571.OOP中唯一关系的是对 ... -
精妙的SQL語句
2009-12-12 17:51 963说明:复制表(只复制结构,源表名:a 新表名:b) SQL: ... -
JPA & Hibernate 注解
2009-11-25 18:05 1186原文地址:http://blog.csdn.net/eastl ... -
Servlet监听器详解
2009-11-11 16:56 1251原文地址:http://www.21jn.net/html/8 ... -
Servlet过滤器介绍之原理分析
2009-11-11 16:31 1362原文地址:http://zhangjunhd.blog.51c ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2009-11-11 14:46 1080原文地址:http://sunxboy.iteye.com/b ... -
jsp常见问题
2009-11-11 14:14 1424原文地址:http://liujinpan75.iteye.c ... -
OGNL表达式语言介绍
2009-11-09 18:08 1991原文地址:http://darkranger.iteye.co ... -
OGNL的用法
2009-11-09 17:46 1477原文地址:http://www.blogjava.net/ma ... -
程序员每天该做的8件事
2009-09-23 15:10 905不重视细节,如何谈得上成功? 1)程序员每天总结自己一天 ... -
jasperreports-1.3.3与iReport1.3.3初级使用
2009-09-14 17:43 2689这几天多在用jasperreports写下一点入门的东西。这里 ... -
ant使用
2009-08-07 15:16 1178参考地址: http://www.blogjava. ... -
Alpha、Beta、RC、GA版本的区别
2009-08-05 11:08 1400Alpha、Beta、RC、GA版本的区别 ... -
基本排序
2009-07-15 12:20 899package zyio; public class Tes ... -
在TOMCAT下配置工程的默认访问
2009-07-10 14:09 3281对工程的部署一般是将工程的压缩文件放在tomcat安装目录的w ...
相关推荐
在【标题】和【描述】中提到的"利用Jmail发送邮件",是通过创建`jmail.MessageClass`对象来实现的。以下是一些关键步骤: 1. **初始化邮件对象**:`jmail.MessageClass oJmailMessage = new jmail.MessageClass();`...
#### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细介绍其中的一些关键技术点。 1. **初始化Jmail...
本文将基于给定的文件信息,深入解析使用JMail组件发送邮件的关键知识点,包括代码解读、配置参数、工作原理及注意事项。 ### JMail组件简介 JMail是一款功能强大的ASP邮件组件,它简化了电子邮件的发送过程,使得...
**Jmail收发邮件控件**是一款用于在应用程序中实现邮件收发功能的组件,它基于OLE技术,允许开发者通过编程的方式轻松集成电子邮件功能。在本文中,我们将深入探讨Jmail控件的主要特点、功能、如何使用以及相关文档...
Jmail是一个流行的组件,它为ASP.NET开发者提供了一种方便的方式来发送邮件。本文将深入探讨如何在ASP.NET中利用Jmail来实现邮件发送功能。 首先,Jmail是一个由DimiSoft公司开发的组件,它支持SMTP、POP3、IMAP等...
对于使用Visual Basic(VB)进行编程的开发者来说,利用第三方组件如jmail来发送邮件是一种高效且简便的方法。本文将深入解析如何使用jmail在VB环境中发送邮件,包括必要的环境配置、代码示例及其详细解释。 ### ...
"使用JMAIL收发邮件,附有JMAIL安装程序,JMAIL程序集及收发源码"这一标签提示了这个资源包的完整性,它为开发者提供了一个完整的工作流程,方便快速上手邮件功能的开发。 总的来说,JMail是一个强大且易用的.NET...
本教程将深入讲解如何使用Java JMail发送邮件,以及涉及的相关知识点。 1. **Java JMail基本概念** - **JavaMail API**: JavaMail API是Java平台上的一个标准API,用于处理电子邮件。它提供了与邮件服务器交互的...
VFP利用JMAIL发送邮件及附件,纯代码,效果好VFP利用JMAIL发送邮件及附件,纯代码,效果好
使用JMail发送邮件主要包括以下几个步骤: 1. **配置SMTP服务器**:JMail需要知道SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。这些信息可以在程序中以Properties对象的形式设置。 2. **创建Session...
《Jmail发送邮件系统源码解析与应用》 在信息技术高速发展的今天,电子邮件已经成为企业和个人进行日常沟通的重要工具。为了实现高效、稳定的邮件发送功能,许多开发者选择利用邮件发送库来构建自己的邮件系统。...
标题 "JMAIL收发邮件源代码及200多个ASP.NET中的控件使用源代码" 涉及的核心技术是JMAIL控件在ASP.NET环境下的应用,这是一款用于发送和接收电子邮件的组件。JMAIL提供了简单易用的接口,使得开发者能够方便地在ASP...
《Jmail发送邮件系统源码解析与应用》 在IT领域,邮件系统是日常工作中不可或缺的一部分,用于传递信息、文件和进行自动化通信。Jmail是一款广泛使用的Java邮件发送库,它为开发者提供了方便的API接口,使得在Java...
### ASP使用Jmail发送邮件的函数及使用方法 在Web开发中,经常需要通过脚本语言来实现自动化发送邮件的功能,以满足用户注册、找回密码等业务需求。本文将详细介绍如何利用ASP(Active Server Pages)结合Jmail组件...
### JMAIL发送邮件知识点 #### 一、JMAIL概述 JMAIL是一款用于.NET环境下的电子邮件组件,它提供了简单易用的API接口,使得开发者能够轻松地实现邮件的发送功能。在本篇内容中,我们将详细介绍如何使用JMAIL组件在...
利用Jmail发送邮件,参考网上资料改良,在自己的程序中结合MS exchange多次使用,经过测试也可以适用于公共邮箱。
以下是一个简单的VB.NET示例,演示如何使用Jmail发送邮件: ```vbnet Imports JMail Dim j As New JMail j.From = "your_email@example.com" j.To = "recipient@example.com" j.Subject = "测试邮件" j.Body = "这...
【Jmail发送邮件系统源码】是一个基于ASP.NET平台的邮件发送系统,它允许开发者集成到自己的网站中,实现高效且可靠的电子邮件通信功能。这个系统的核心是Jmail组件,一个强大的SMTP邮件服务接口,能够帮助开发者...