- 浏览: 130716 次
- 性别:
- 来自: 上海
最新评论
-
78425665:
请问下,eclemma怎么用在tomcat部署的项目中
5.1 每个项目最重要的十件事 -
jaisok:
呵呵,挺好的
struts-config中action的attribute属性与name属性的关系 -
minma_yuyang:
能不能简单点,我才入门,
build xml
Gmail目前已经启用了POP3和SMTP服务,与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:
1. 邮件收取
package lius.javamail.ssl;
import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;
/**
* 用于收取Gmail邮件
* @author Winter Lau
*/
public class GmailFetch {
public static void main(String argv[]) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", "995");
props.setProperty("mail.pop3.socketFactory.port", "995");
//以下步骤跟一般的JavaMail操作相同
Session session = Session.getDefaultInstance(props,null);
//请将红色部分对应替换成你的邮箱帐号和密码
URLName urln = new URLName("pop3","pop.gmail.com",995,null,
"[邮箱帐号]", "[邮箱密码]");
Store store = session.getStore(urln);
Folder inbox = null;
try {
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
Message[] messages = inbox.getMessages();
inbox.fetch(messages, profile);
System.out.println("收件箱的邮件数:" + messages.length);
for (int i = 0; i < messages.length; i++) {
//邮件发送者
String from = decodeText(messages[i].getFrom()[0].toString());
InternetAddress ia = new InternetAddress(from);
System.out.println("FROM:" + ia.getPersonal()+'('+ia.getAddress()+')');
//邮件标题
System.out.println("TITLE:" + messages[i].getSubject());
//邮件大小
System.out.println("SIZE:" + messages[i].getSize());
//邮件发送时间
System.out.println("DATE:" + messages[i].getSentDate());
}
} finally {
try {
inbox.close(false);
} catch (Exception e) {}
try {
store.close();
} catch (Exception e) {}
}
}
protected static String decodeText(String text)
throws UnsupportedEncodingException {
if (text == null)
return null;
if (text.startsWith("=?GB") || text.startsWith("=?gb"))
text = MimeUtility.decodeText(text);
else
text = new String(text.getBytes("ISO8859_1"));
return text;
}
}
2. 发送邮件
package lius.javamail.ssl;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 使用Gmail发送邮件
* @author Winter Lau
*/
public class GmailSender {
public static void main(String[] args) throws AddressException, MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
final String username = "[邮箱帐号]";
final String password = "[邮箱密码]";
Session session = Session.getDefaultInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(username + "@mo168.com"));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("[收件人地址]",false));
msg.setSubject("Hello");
msg.setText("How are you");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("Message sent.");
}
}
1. 邮件收取
package lius.javamail.ssl;
import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;
/**
* 用于收取Gmail邮件
* @author Winter Lau
*/
public class GmailFetch {
public static void main(String argv[]) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", "995");
props.setProperty("mail.pop3.socketFactory.port", "995");
//以下步骤跟一般的JavaMail操作相同
Session session = Session.getDefaultInstance(props,null);
//请将红色部分对应替换成你的邮箱帐号和密码
URLName urln = new URLName("pop3","pop.gmail.com",995,null,
"[邮箱帐号]", "[邮箱密码]");
Store store = session.getStore(urln);
Folder inbox = null;
try {
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
Message[] messages = inbox.getMessages();
inbox.fetch(messages, profile);
System.out.println("收件箱的邮件数:" + messages.length);
for (int i = 0; i < messages.length; i++) {
//邮件发送者
String from = decodeText(messages[i].getFrom()[0].toString());
InternetAddress ia = new InternetAddress(from);
System.out.println("FROM:" + ia.getPersonal()+'('+ia.getAddress()+')');
//邮件标题
System.out.println("TITLE:" + messages[i].getSubject());
//邮件大小
System.out.println("SIZE:" + messages[i].getSize());
//邮件发送时间
System.out.println("DATE:" + messages[i].getSentDate());
}
} finally {
try {
inbox.close(false);
} catch (Exception e) {}
try {
store.close();
} catch (Exception e) {}
}
}
protected static String decodeText(String text)
throws UnsupportedEncodingException {
if (text == null)
return null;
if (text.startsWith("=?GB") || text.startsWith("=?gb"))
text = MimeUtility.decodeText(text);
else
text = new String(text.getBytes("ISO8859_1"));
return text;
}
}
2. 发送邮件
package lius.javamail.ssl;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 使用Gmail发送邮件
* @author Winter Lau
*/
public class GmailSender {
public static void main(String[] args) throws AddressException, MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
final String username = "[邮箱帐号]";
final String password = "[邮箱密码]";
Session session = Session.getDefaultInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(username + "@mo168.com"));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("[收件人地址]",false));
msg.setSubject("Hello");
msg.setText("How are you");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("Message sent.");
}
}
- jaf-1_1_1.zip (370.7 KB)
- 下载次数: 9
- javamail-1_4_1.zip (2.4 MB)
- 下载次数: 6
发表评论
-
weblogic doc
2010-06-22 14:33 702http://edocs.weblogicfans.net/w ... -
中文字判断
2010-05-13 17:07 857中文字判断 <td width="14%&qu ... -
html sort
2010-05-10 16:49 711<table width="100%" ... -
Jmeter
2010-04-28 17:37 990http://www.cnblogs.com/jackei/a ... -
native2ascii
2010-02-23 10:59 997native2ascii -encoding UTF-8 Me ... -
CronTrigger配置
2009-09-04 09:54 891CronTrigger配置格式: 格 ... -
頁面禁止用F11
2009-08-19 17:48 1180function filter(){ if (event ... -
Eclipse不能自动编译工程的解决方法
2009-07-04 21:31 1031目录下也是空的. 具体都操作了: 打开project-> ... -
jmeter
2009-07-01 22:33 1060http://www.51testing.com/?uid-1 ... -
jdbc batchsize
2009-06-27 14:40 1336LocalSessionFactoryBean.getConf ... -
date
2009-06-24 23:50 917public class DateUtil { ... -
POI
2009-05-24 21:53 1330package poi.metrics; import ja ... -
effective java
2009-04-19 21:47 1132第一条: 内容:静态工厂替代构造函数 例子:String.va ... -
ServletContext与ServletConfig的分析
2009-03-31 23:22 888对于web容器来说,ServletContext接口定义了一个 ... -
接口和抽象类
2009-03-31 11:30 7911.abstract class 在 Java 语言中表示的是 ... -
关于数组转型的问题
2009-03-31 08:41 794一个Object[]无法转换Integer[] ... -
【Spring】Spring中WebApplicationContext的研究
2009-03-12 16:10 738ApplicationContext是Spring的核心,Co ... -
图形程序设计
2009-03-06 16:20 1427http://hi.baidu.com/filoplume/b ... -
JAVA文件中获取该项目的相对路径方法
2009-03-06 09:30 18421.基本概念的理解 绝对路径:绝对路径就是你的主页上的文 ... -
java copy and delete file
2009-03-05 22:36 3177import java.io.*; public ...
相关推荐
### JavaMail收发Gmail邮件知识点详解 ...通过以上步骤,我们可以使用JavaMail实现对Gmail邮件的收发功能,并且通过SSL加密技术确保了数据的安全传输。这对于开发涉及邮件处理的应用程序非常有用。
使用`MimeMessage`类创建一个邮件对象,并设置发件人、收件人、主题和内容。 ```java MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(FROM_ADDRESS)); message....
本教程将详细讲解如何利用Spring Mail通过Gmail的SSL(安全套接层)协议来发送邮件。 首先,我们需要在项目中引入Spring Mail的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
这个例子展示了如何使用JavaMail API通过QQ和Gmail邮箱实现邮件的发送,并且使用了SSL(Secure Socket Layer)来确保通信的安全性。SSL是网络安全传输的一种标准,它可以加密传输的数据,防止在互联网上被窃取或篡改...
`Folder` 对象的 `getMessages()` 方法可以获取邮件列表,每封邮件都是一个 `Message` 对象,可以通过 `Message` 的方法来读取具体内容,如发件人、收件人、主题、日期等。 在这个“outmail”文件中,可能包含了...
为了确保邮件发送的成功,开发者需要了解SMTP服务器的设置,包括是否需要SSL/TLS加密连接,以及正确的端口号。某些邮件服务商如Gmail、Yahoo、Outlook等可能需要开启"不安全的应用程序访问"权限。 总的来说,...
3. 构造邮件消息:使用`Message`类创建一个邮件对象,并设置发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress("your-email@example.com"))...
此外,如果邮件包含敏感信息,务必确保传输过程的安全性,例如启用SSL/TLS加密。 以上就是使用JavaMail发送邮件的详细过程,以及与文本编辑器KindEditor的集成方式。在开发过程中,记得根据具体需求调整和优化代码...
在这个例子中,`setNeedAuth`方法用于设置是否需要SMTP身份认证,`setFrom`、`setRecipient`等方法用于设置邮件的发件人和收件人,`setSubject`用于设置邮件主题,`setText`或`addBodyPart`用于设置邮件正文(可以是...
在本篇文章中,我们将深入探讨如何利用Spring来实现JavaMail邮件发送,以及在实际应用中需要注意的关键点。 首先,我们需要理解JavaMail API的基础概念。JavaMail是一个用于处理邮件的开放源码API,它允许开发者...
JavaMail 还支持更复杂的功能,如发送 HTML 邮件、添加附件、使用 SSL/TLS 加密连接等。你可以通过调整 `Message` 对象和配置 `Properties` 来实现这些功能。 此外,JavaMail 提供了对 POP3(邮局协议)和 IMAP...
在Android开发中,有时我们需要为用户提供发送邮件的功能,例如报告应用错误、分享内容或接收服务通知。JavaMail for Android和...在实际应用中,确保遵循最佳实践,如使用SSL/TLS加密连接,以保护用户数据的安全。
2. **创建 Message 对象**:Message 是邮件实体,包含了邮件的头部信息(如发件人、收件人、主题和日期)以及邮件内容。使用 `MimeMessage` 类创建一个实例,并设置相应的属性。 ```java MimeMessage message = new...
同时,JavaMail API也支持SSL/TLS加密,以确保邮件通信的安全性。 总之,JavaMail API和`javaMail.jar`是Java开发者处理电子邮件不可或缺的工具,它们提供了强大的功能,使得在程序中发送和接收邮件变得简单易行。
这个教程可能还会涵盖更高级的主题,如处理邮件认证问题、使用SSL/TLS加密连接、调试邮件发送过程等。同时,可能会涉及到异常处理,因为邮件发送过程中可能会出现网络问题或其他错误。 总之,JavaMail API 提供了一...
- **SSL/TLS 安全连接**:通过配置,可以在不安全的网络环境中安全地连接邮件服务器。 - **邮件过滤和搜索**:使用 `Folder.search()` 方法可以按条件搜索邮件,配合 `Message旗标` 可以进行邮件过滤。 - **邮件...
4. **构建邮件**:使用`Commons-Mail`的`Email`类创建邮件实例,设置收件人、发件人、主题和正文: ```java Email email = new SimpleEmail(); email.setFrom("your-email@example.com"); email.setSubject(...
- 使用SSL/TLS连接以保护通信的安全性。 - 定期更新库和依赖,以防已知漏洞被利用。 5. **扩展功能** - 可以定期检查邮件状态,当达到特定条件时触发提醒或自动处理。 - 结合Webhook或其他通知服务,实时报告...
为了安全地发送和接收邮件,通常需要启用SSL/TLS加密。可以通过设置`mail.smtp.starttls.enable`和`mail.smtp.ssl.enable`属性来开启。 6. **异常处理** 在实际编程中,应处理可能出现的异常,如...
1. **配置邮件服务器**:首先,你需要知道你的邮件服务商的SMTP服务器地址、端口号,以及是否需要SSL/TLS加密。这些信息可以在邮件服务提供商的帮助文档中找到。例如,对于Gmail,SMTP服务器通常是smtp.gmail.com,...