// Setup properties
Properties props = System.getProperties();
props.put("mail.pop3.host", host);
// Setup authentication, get session
Authenticator auth = new PopupAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
// Get the store
Store store = session.getStore("pop3");
store.connect();
PopupAuthenticator类继承了抽象类Authenticator,并且通过重载Authenticator类的getPasswordAuthentication()方法返回PasswordAuthentication类对象 。而getPasswordAuthentication()方法的参数param是以逗号分割的用户名、密码组成的字符串 。
import javax.mail.*;
import java.util.*;
public class PopupAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication(String param) {
String username, password;
StringTokenizer st = new StringTokenizer(param, ",");
username = st.nextToken();
password = st.nextToken();
return new PasswordAuthentication(username, password);
}
}
5.回复邮件
回复邮件的方法很简单:使用Message类的reply()方法,通过配置回复邮件的收件人地址和主题(如果没有提供主题的话,系统将默认将“Re:”作为邮件的主体),这里不需要设置任何的邮件内容,只要复制发信人或者reply-to到新的收件人 。而reply()方法中的boolean参数表示是否将邮件回复给发送者(参数值为false) , 或是恢复给所有人(参数值为true) 。
补充一下,reply-to地址需要在发信时使用setReplyTo()方法设置 。
MimeMessage reply = (MimeMessage)message.reply(false);
reply.setFrom(new InternetAddress("president@whitehouse.gov"));
reply.setText("Thanks");
Transport.send(reply);
6.转发邮件
转发邮件的过程不如前面的回复邮件那样简单,它将建立一个转发邮件,这并非一个方法就能做到 。
每个邮件是由多个部分组成,每个部分称为一个邮件体部分,是一个BodyPart类对象 , 对于MIME类型邮件来讲就是MimeBodyPart类对象 。这些邮件体包含在成为Multipart的容器中对于MIME类型邮件来讲就是MimeMultiPart类对象 。在转发邮件时 , 我们建立一个文字邮件体部分和一个被转发的文字邮件体部分,然后将这两个邮件体放到一个Multipart中 。说明一下,复制一个邮件内容到另一个邮件的方法是仅复制它的DataHandler(数据处理者)即可 。这是由JavaBeans Activation Framework定义的一个类,它提供了对邮件内容的操作命令的访问、管理了邮件内容操作,是不同的数据源和数据格式之间的一致性接口 。
// Create the message to forward
Message forward = new MimeMessage(session);
// Fill in header
forward.setSubject("Fwd: " + message.getSubject());
forward.setFrom(new InternetAddress(from));
forward.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// Create your new message part
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(
"Here you go with the original message:\n\n");
// Create a multi-part to combine the parts
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Create and fill part for the forwarded content
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(message.getDataHandler());
// Add part to multi part
multipart.addBodyPart(messageBodyPart);
// Associate multi-part with message
forward.setContent(multipart);
// Send message
Tran
java如何将电子邮箱的登陆名,域名,主机名输出1、打开eclipse,然后在主函数中书写这条语句即可输出,输出的内容要用双引号引起来 。
2、接着运行java程序,然后就会直接在控制台打印我们的输出的电子邮箱的登陆名,域名 , 主机名内容 。
- java查询数组中是否包含某一个值 javamongodb数组查询
- mongodb哪些企业使用 mongodb适合做业务系统吗
- 如何在戴尔服务器上部署操作系统? 戴尔服务器os怎么部署
- redis实战电子书 redisjava书籍
- mongodb日志系统设计 基于mongodb日志统计
- javaredis集群 javaredis列队
- Redis队列排队 redis队列java
- java mongodb aggregate mongodb的教程java
- redis系统性能
- mongodb用的多吗 mongodb支持哪些系统
