初学JAVA,想用java写一个收发邮件的程序,那要学哪些东西啊 rt.................多帮帮忙, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.oracle.com/technetwork/java/index-jsp-139225.html 用java写收发Mail的话,必然是JavaMail java mail如果需要图形界面,swing package com.mail.test;import java.util.Date;import java.util.Properties;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.sql.DataSource;import sun.misc.BASE64Encoder;public class MailSender { /** * 发送单个邮件 * @throws Exception */ public void sendMail() throws Exception{ Properties props = new Properties();//创建属性对象 props.put("mail.smtp.host", getHost());//设置smtp服务器地址 props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证 Session session = Session.getInstance(props, null);//创建新邮件并群发 //Session session = Session.getDefaultInstance(props); //session.setDebug(true); MimeMessage message = new MimeMessage(session);//创建过程对象 message.setFrom(new InternetAddress(getFromAddr())); message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr())); message.setSubject(getTitle());//设置主题 Multipart multipart = new MimeMultipart(); BodyPart contentPart = new MimeBodyPart(); contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容 multipart. addBodyPart(contentPart); if(getAttachPath() != null && getAttachName() != null){ BodyPart attachmentPart= new MimeBodyPart(); // DataSource source = new FileDataSource(getAttachPath()); // attachmentPart.setDataHandler(new DataHandler(source)); BASE64Encoder enc = new BASE64Encoder(); attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?="); multipart.addBodyPart(attachmentPart); } message.setContent(multipart); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host, getUsername(), getPassword()); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } /** * 群发邮件 * @throws Exception */ public void sendMails() throws Exception{ Properties props = new Properties();//创建属性对象 props.put("mail.smtp.host", getHost());//设置smtp服务器地址 props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证 Session session = Session.getInstance(props, null);//创建新邮件并群发 //Session session = Session.getDefaultInstance(props); //session.setDebug(true); MimeMessage message = new MimeMessage(session);//创建过程对象 message.setFrom(new InternetAddress(getFromAddr()));//设置发送邮件地址 message.setSentDate(new Date());//设置时间 InternetAddress[] address = new InternetAddress[this.getMutliTo().length]; //群发地址 for(int i = 0; i < this.getMutliTo().length; i++) { //循环发送 address[i] = new InternetAddress((this.getMutliTo())[i]); } message.setRecipients(Message.RecipientType.TO, address); // message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr())); message.setSubject(getTitle());//设置主题 Multipart multipart = new MimeMultipart(); BodyPart contentPart = new MimeBodyPart(); contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容 multipart. addBodyPart(contentPart); if(getAttachPath() != null && getAttachName() != null){ BodyPart attachmentPart= new MimeBodyPart(); // DataSource source = new FileDataSource(getAttachPath()); // attachmentPart.setDataHandler(new DataHandler(source)); BASE64Encoder enc = new BASE64Encoder(); attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?="); multipart.addBodyPart(attachmentPart); } message.setContent(multipart); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host, getUsername(), getPassword()); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } private String host = null; //邮件服务器 private String fromAddr = null; //发送邮件地址 private String toAddr = null; //接收邮件地址 private String username = null; //发送邮件用户名 private String password = null; //发送邮件密码 private String title = null; //邮件标题 private String attachPath = null; //邮件附件路径 private String attachName = null; //邮件附件名 private String sendtext = null; //邮件内容 private String[] MutliTo = null; //群发用户 public String[] getMutliTo() { return MutliTo; } public void setMutliTo(String[] mutliTo) { MutliTo = mutliTo; } public String getSendtext() { return sendtext; } public void setSendtext(String sendtext) { this.sendtext = sendtext; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getFromAddr() { return fromAddr; } public void setFromAddr(String fromAddr) { this.fromAddr = fromAddr; } public String getToAddr() { return toAddr; } public void setToAddr(String toAddr) { this.toAddr = toAddr; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAttachPath() { return attachPath; } public void setAttachPath(String attachPath) { this.attachPath = attachPath; } public String getAttachName() { return attachName; } public void setAttachName(String attachName) { this.attachName = attachName; } } 邮件发送简单设计就是这样了,LZ得下载一些javamail的jar包,这个不难。 张孝祥的Java邮件开发 可以看着参考下,适合新手视频学习,不过我是老连接不上服务器 http://download.csdn.net/source/2781963前不久写了个玩的,内含源码,用quaqua改善了下外观 public void run() { messageEdit(m, mailItem); mailItem.setMailID(receiveMailId); Part p = m; // マルチパート解析 partSet(p, mailItem); } /** * メッセージに含まれるヘッダー情報を取得編集する。 * @param message Message * @param mailItem 編集対象 * @throws MessagingException MessagingException * @throws SystemException SystemException * @throws UnsupportedEncodingException UnsupportedEncodingException * @throws GenericException GenericException */ private void messageEdit(Message message, MailItem mailItem) throws MessagingException, SystemException, UnsupportedEncodingException, GenericException { MimeMessage mimeMessage = (MimeMessage)message; // メッセージ番号 mailItem.setMessageNo(mimeMessage.getMessageNumber()); // 送信日時 mailItem.setSentDate(mimeMessage.getSentDate()); // 受信日時 mailItem.setReceivedDate(DateUtil.getSysdate()); // メール名 mailItem.setSubject(MimeUtility.decodeText(mimeMessage.getSubject())); // メールサイズ mailItem.setSize(mimeMessage.getSize()); // メールタイプ mailItem.setContentType(mimeMessage.getContentType()); // 読取フラグ Flags flags = message.getFlags(); ArrayList< String > userFlg1 = new ArrayList< String >(); String[] userFlg = flags.getUserFlags(); if (null != userFlg) { for (int i = 0; i < userFlg.length; i++) { userFlg1.add(userFlg[i]); } } mailItem.setUserFlg(userFlg1); ArrayList< String > from1 = new ArrayList< String >(); // Fromアドレス if (null != mimeMessage.getFrom()) { for (Address a : mimeMessage.getFrom()) { from1.add(MimeUtility.decodeText(a.toString())); } } mailItem.setFrom(from1); // Fromアドレス「@」以後 String domain = mailItem.getFrom().get(0).split("@")[1]; // ドメインからキャリアコードを取得する。 GMMDomianDao gmmdomianDao = (GMMDomianDao)BatchCommon.getContainer().getComponent("GMMDomianDao"); // ドメイン名がNULLの場合 if (StringUtil.isEmpty(domain)) { throw new GenericException(Constants.MESSAGE_APPLICATION_COMMON, "COMMON.E044", ""); } domain = domain.substring(0, domain.length() - 1); // キャリアコード取得 String replytoAddressG = gmmdomianDao.getCarrierCd(domain); // キャリアコードを取得する。 if (!StringUtil.isEmpty(replytoAddressG)) { mailItem.setCarrierCd(replytoAddressG); } else { // PCキャリアコード SystemPropertiesManager systemPropertiesManager = SystemPropertiesManager.getInstance(); // PCキャリアコード取得 replytoAddressG = systemPropertiesManager.getProperties(Constants.PC_CARRIER_CD); // キャリアコード mailItem.setCarrierCd(replytoAddressG); } ArrayList< String > replyTo1 = new ArrayList< String >(); // ReplyToアドレス if (null != mimeMessage.getReplyTo()) { for (Address a : mimeMessage.getReplyTo()) { replyTo1.add(MimeUtility.decodeText(a.toString())); } } mailItem.setReplyTo(replyTo1); ArrayList< String > to1 = new ArrayList< String >(); // Toアドレス if (null != mimeMessage.getRecipients(Message.RecipientType.TO)) { for (Address a : mimeMessage.getRecipients(Message.RecipientType.TO)) { to1.add(MimeUtility.decodeText(a.toString())); } } mailItem.setTo(to1); ArrayList< String > cc1 = new ArrayList< String >(); // Ccアドレス if (null != mimeMessage.getRecipients(Message.RecipientType.CC)) { for (Address a : mimeMessage.getRecipients(Message.RecipientType.CC)) { cc1.add(MimeUtility.decodeText(a.toString())); } } mailItem.setCc(cc1); ArrayList< String > bcc1 = new ArrayList< String >(); // Bccアドレス if (null != mimeMessage.getRecipients(Message.RecipientType.BCC)) { for (Address a : mimeMessage.getRecipients(Message.RecipientType.BCC)) { bcc1.add(MimeUtility.decodeText(a.toString())); } } mailItem.setBcc(bcc1); } /** * メールに含まれるメッセージや添付ファイルを取得する。 * @param p Part * @param mailItem メールヘッダー情報 * @throws MessagingException MessagingException * @throws IOException IOException */ public void partSet(Part p, MailItem mailItem) throws MessagingException, IOException { MailContent mailContent = new MailContent(); String disp = ""; disp = p.getDisposition(); // マルチパートの場合 if (p.isMimeType("multipart/*")) { Multipart mp = (Multipart)p.getContent(); int count = mp.getCount(); for (int i = 0; i < count; i++) { partSet(mp.getBodyPart(i), mailItem); } return; // メッセージの場合 } else if (p.isMimeType("message/rfc822")) { partSet((Part)p.getContent(), mailItem); return; } else if (p.isMimeType("text/*")) { if (disp != null && disp.equalsIgnoreCase(Part.ATTACHMENT)) { // ファイル名 mailContent.setFileName(p.getFileName()); // 添付フラグ mailContent.setAttachmentFlg(true); // 添付計数 iCount = iCount + 1; mailContent.setFileID(iCount); // 添付サイズ mailContent.setSize(p.getSize()); } // コンテンツタイブ mailContent.setContentType(p.getContentType()); // コンテンツ mailContent.setContent(p.getContent().toString()); ByteArrayOutputStream os = new ByteArrayOutputStream(); try { p.writeTo(os); // コンテンツバイナリ mailContent.setContentBinary(os.toByteArray()); } catch (IOException e) { e.printStackTrace(); logger.error(e); } // メール内容 mailItem.getMailContents().add(mailContent); return; } // 添付ファイルの場合 if (disp == null || disp.equalsIgnoreCase(Part.ATTACHMENT)) { // 添付計数 iCount = iCount + 1; // 添付ファイルフラグ mailContent.setContentBinaryFlg(true); // コンテンツID取得 MimeBodyPart mimeBodyPart = (MimeBodyPart)p; if (!StringUtil.isEmpty(mimeBodyPart.getContentID())) { String contentID = mimeBodyPart.getContentID(); if (contentID.startsWith("<") && contentID.endsWith(">")) { contentID = contentID.substring(1, contentID.length() - 1); } mailContent.setContentId(contentID); } // ファイル名 mailContent.setFileName(p.getFileName()); if (mailContent.getFileName() != null) { mailContent.setFileName(MimeUtility.decodeText(mailContent.getFileName())); } else { mailContent.setFileName(""); } ByteArrayOutputStream os = new ByteArrayOutputStream(); p.writeTo(os); // コンテンツバイナリ mailContent.setContentBinary(os.toByteArray()); // コンテンツタイブ mailContent.setContentType(p.getContentType()); // 添付フラグ mailContent.setAttachmentFlg(true); // 添付番号 mailContent.setFileID(iCount); // 添付サイズ mailContent.setSize(p.getSize()); // メール内容 mailItem.getMailContents().add(mailContent); } } 上面是我写的一部分,是后台处理。主要就这两个方法。和邮箱连接部分没有,上面就是对于收mail的解析。 java.sql.SQLException: Column not found 错误怎么处理 容器参数类型问题 字符串问题 请大家帮我看看这段小程序为什么不能正常执行??? 一个小问题 请问哪位有<精通Java Swing程序设计>的电子图书?? 求个程序代码!socket相关的! 分享一个图片分割器源码。。。。一起交流学习!! 十一放大假放分1000 那里有新版本的cloudview 谁帮我看下这个java计算机的Frame怎么显示不出来啊 关于字符编码的疑问
如果需要图形界面,swing
import java.util.Properties;import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.sql.DataSource;import sun.misc.BASE64Encoder;public class MailSender { /**
* 发送单个邮件
* @throws Exception
*/
public void sendMail() throws Exception{ Properties props = new Properties();//创建属性对象
props.put("mail.smtp.host", getHost());//设置smtp服务器地址
props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证
Session session = Session.getInstance(props, null);//创建新邮件并群发
//Session session = Session.getDefaultInstance(props);
//session.setDebug(true);
MimeMessage message = new MimeMessage(session);//创建过程对象
message.setFrom(new InternetAddress(getFromAddr()));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
message.setSubject(getTitle());//设置主题
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容
multipart. addBodyPart(contentPart);
if(getAttachPath() != null && getAttachName() != null){
BodyPart attachmentPart= new MimeBodyPart();
// DataSource source = new FileDataSource(getAttachPath());
// attachmentPart.setDataHandler(new DataHandler(source));
BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, getUsername(), getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
/**
* 群发邮件
* @throws Exception
*/
public void sendMails() throws Exception{
Properties props = new Properties();//创建属性对象
props.put("mail.smtp.host", getHost());//设置smtp服务器地址
props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证
Session session = Session.getInstance(props, null);//创建新邮件并群发
//Session session = Session.getDefaultInstance(props);
//session.setDebug(true);
MimeMessage message = new MimeMessage(session);//创建过程对象
message.setFrom(new InternetAddress(getFromAddr()));//设置发送邮件地址
message.setSentDate(new Date());//设置时间
InternetAddress[] address = new InternetAddress[this.getMutliTo().length]; //群发地址
for(int i = 0; i < this.getMutliTo().length; i++) { //循环发送
address[i] = new InternetAddress((this.getMutliTo())[i]);
}
message.setRecipients(Message.RecipientType.TO, address);
// message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
message.setSubject(getTitle());//设置主题
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容
multipart. addBodyPart(contentPart);
if(getAttachPath() != null && getAttachName() != null){
BodyPart attachmentPart= new MimeBodyPart();
// DataSource source = new FileDataSource(getAttachPath());
// attachmentPart.setDataHandler(new DataHandler(source));
BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, getUsername(), getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} private String host = null; //邮件服务器
private String fromAddr = null; //发送邮件地址
private String toAddr = null; //接收邮件地址
private String username = null; //发送邮件用户名
private String password = null; //发送邮件密码
private String title = null; //邮件标题
private String attachPath = null; //邮件附件路径
private String attachName = null; //邮件附件名
private String sendtext = null; //邮件内容
private String[] MutliTo = null; //群发用户
public String[] getMutliTo() {
return MutliTo;
} public void setMutliTo(String[] mutliTo) {
MutliTo = mutliTo;
} public String getSendtext() {
return sendtext;
} public void setSendtext(String sendtext) {
this.sendtext = sendtext;
} public String getHost() {
return host;
} public void setHost(String host) {
this.host = host;
} public String getFromAddr() {
return fromAddr;
} public void setFromAddr(String fromAddr) {
this.fromAddr = fromAddr;
} public String getToAddr() {
return toAddr;
} public void setToAddr(String toAddr) {
this.toAddr = toAddr;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getAttachPath() {
return attachPath;
} public void setAttachPath(String attachPath) {
this.attachPath = attachPath;
} public String getAttachName() {
return attachName;
} public void setAttachName(String attachName) {
this.attachName = attachName;
}
}
邮件发送简单设计就是这样了,LZ得下载一些javamail的jar包,这个不难。
前不久写了个玩的,内含源码,用quaqua改善了下外观
messageEdit(m, mailItem);
mailItem.setMailID(receiveMailId);
Part p = m;
// マルチパート解析
partSet(p, mailItem);
}
/**
* メッセージに含まれるヘッダー情報を取得編集する。
* @param message Message
* @param mailItem 編集対象
* @throws MessagingException MessagingException
* @throws SystemException SystemException
* @throws UnsupportedEncodingException UnsupportedEncodingException
* @throws GenericException GenericException
*/
private void messageEdit(Message message, MailItem mailItem) throws MessagingException, SystemException,
UnsupportedEncodingException, GenericException {
MimeMessage mimeMessage = (MimeMessage)message;
// メッセージ番号
mailItem.setMessageNo(mimeMessage.getMessageNumber());
// 送信日時
mailItem.setSentDate(mimeMessage.getSentDate());
// 受信日時
mailItem.setReceivedDate(DateUtil.getSysdate());
// メール名
mailItem.setSubject(MimeUtility.decodeText(mimeMessage.getSubject()));
// メールサイズ
mailItem.setSize(mimeMessage.getSize());
// メールタイプ
mailItem.setContentType(mimeMessage.getContentType());
// 読取フラグ
Flags flags = message.getFlags();
ArrayList< String > userFlg1 = new ArrayList< String >();
String[] userFlg = flags.getUserFlags();
if (null != userFlg) {
for (int i = 0; i < userFlg.length; i++) {
userFlg1.add(userFlg[i]);
}
}
mailItem.setUserFlg(userFlg1);
ArrayList< String > from1 = new ArrayList< String >();
// Fromアドレス
if (null != mimeMessage.getFrom()) {
for (Address a : mimeMessage.getFrom()) {
from1.add(MimeUtility.decodeText(a.toString()));
}
}
mailItem.setFrom(from1);
// Fromアドレス「@」以後
String domain = mailItem.getFrom().get(0).split("@")[1];
// ドメインからキャリアコードを取得する。
GMMDomianDao gmmdomianDao = (GMMDomianDao)BatchCommon.getContainer().getComponent("GMMDomianDao");
// ドメイン名がNULLの場合
if (StringUtil.isEmpty(domain)) {
throw new GenericException(Constants.MESSAGE_APPLICATION_COMMON, "COMMON.E044", "");
}
domain = domain.substring(0, domain.length() - 1);
// キャリアコード取得
String replytoAddressG = gmmdomianDao.getCarrierCd(domain);
// キャリアコードを取得する。
if (!StringUtil.isEmpty(replytoAddressG)) {
mailItem.setCarrierCd(replytoAddressG);
} else {
// PCキャリアコード
SystemPropertiesManager systemPropertiesManager = SystemPropertiesManager.getInstance();
// PCキャリアコード取得
replytoAddressG = systemPropertiesManager.getProperties(Constants.PC_CARRIER_CD);
// キャリアコード
mailItem.setCarrierCd(replytoAddressG);
}
ArrayList< String > replyTo1 = new ArrayList< String >();
// ReplyToアドレス
if (null != mimeMessage.getReplyTo()) {
for (Address a : mimeMessage.getReplyTo()) {
replyTo1.add(MimeUtility.decodeText(a.toString()));
}
}
mailItem.setReplyTo(replyTo1);
ArrayList< String > to1 = new ArrayList< String >();
// Toアドレス
if (null != mimeMessage.getRecipients(Message.RecipientType.TO)) {
for (Address a : mimeMessage.getRecipients(Message.RecipientType.TO)) {
to1.add(MimeUtility.decodeText(a.toString()));
}
}
mailItem.setTo(to1);
ArrayList< String > cc1 = new ArrayList< String >();
// Ccアドレス
if (null != mimeMessage.getRecipients(Message.RecipientType.CC)) {
for (Address a : mimeMessage.getRecipients(Message.RecipientType.CC)) {
cc1.add(MimeUtility.decodeText(a.toString()));
}
}
mailItem.setCc(cc1);
ArrayList< String > bcc1 = new ArrayList< String >();
// Bccアドレス
if (null != mimeMessage.getRecipients(Message.RecipientType.BCC)) {
for (Address a : mimeMessage.getRecipients(Message.RecipientType.BCC)) {
bcc1.add(MimeUtility.decodeText(a.toString()));
}
}
mailItem.setBcc(bcc1); } /**
* メールに含まれるメッセージや添付ファイルを取得する。
* @param p Part
* @param mailItem メールヘッダー情報
* @throws MessagingException MessagingException
* @throws IOException IOException
*/
public void partSet(Part p, MailItem mailItem) throws MessagingException, IOException {
MailContent mailContent = new MailContent();
String disp = "";
disp = p.getDisposition();
// マルチパートの場合
if (p.isMimeType("multipart/*")) {
Multipart mp = (Multipart)p.getContent();
int count = mp.getCount();
for (int i = 0; i < count; i++) {
partSet(mp.getBodyPart(i), mailItem);
}
return;
// メッセージの場合
} else if (p.isMimeType("message/rfc822")) {
partSet((Part)p.getContent(), mailItem);
return;
} else if (p.isMimeType("text/*")) {
if (disp != null && disp.equalsIgnoreCase(Part.ATTACHMENT)) {
// ファイル名
mailContent.setFileName(p.getFileName());
// 添付フラグ
mailContent.setAttachmentFlg(true);
// 添付計数
iCount = iCount + 1;
mailContent.setFileID(iCount);
// 添付サイズ
mailContent.setSize(p.getSize());
}
// コンテンツタイブ
mailContent.setContentType(p.getContentType());
// コンテンツ
mailContent.setContent(p.getContent().toString());
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
p.writeTo(os);
// コンテンツバイナリ
mailContent.setContentBinary(os.toByteArray());
} catch (IOException e) {
e.printStackTrace();
logger.error(e);
}
// メール内容
mailItem.getMailContents().add(mailContent);
return;
}
// 添付ファイルの場合
if (disp == null || disp.equalsIgnoreCase(Part.ATTACHMENT)) {
// 添付計数
iCount = iCount + 1;
// 添付ファイルフラグ
mailContent.setContentBinaryFlg(true);
// コンテンツID取得
MimeBodyPart mimeBodyPart = (MimeBodyPart)p;
if (!StringUtil.isEmpty(mimeBodyPart.getContentID())) {
String contentID = mimeBodyPart.getContentID();
if (contentID.startsWith("<") && contentID.endsWith(">")) {
contentID = contentID.substring(1, contentID.length() - 1);
}
mailContent.setContentId(contentID);
}
// ファイル名
mailContent.setFileName(p.getFileName());
if (mailContent.getFileName() != null) {
mailContent.setFileName(MimeUtility.decodeText(mailContent.getFileName()));
} else {
mailContent.setFileName("");
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
p.writeTo(os);
// コンテンツバイナリ
mailContent.setContentBinary(os.toByteArray());
// コンテンツタイブ
mailContent.setContentType(p.getContentType());
// 添付フラグ
mailContent.setAttachmentFlg(true);
// 添付番号
mailContent.setFileID(iCount);
// 添付サイズ
mailContent.setSize(p.getSize());
// メール内容
mailItem.getMailContents().add(mailContent);
} }
和邮箱连接部分没有,上面就是对于收mail的解析。