java attachment_Java 接收邮件(接收多附件)

//Java接收邮件主程序:

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.Properties;

import javax.mail.BodyPart;

import javax.mail.Flags;

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;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeUtility;

/**

* @author Administrator

*

*/

public class PraseMimeMessage {

private MimeMessage mimeMessage = null;

private String saveAttachPath = "d:\\";// 附件下载后的存放目录

private StringBuffer bodytext = new StringBuffer();

// 存放邮件内容的StringBuffer对象

private String dateformat = "yy-MM-dd HH:mm";// 默认的日前显示格式

/**

* 构造函数,初始化一个MimeMessage对象

*/

public PraseMimeMessage() {

}

public PraseMimeMessage(MimeMessage mimeMessage) {

this.mimeMessage = mimeMessage;

//        System.out.println("create a PraseMimeMessage object........");

}

public void setMimeMessage(MimeMessage mimeMessage) {

this.mimeMessage = mimeMessage;

}

/**

*

* 获取发件人的姓名和密码

*

* @return

*/

public String getFrom() throws Exception {

InternetAddress address[] = (InternetAddress[]) mimeMessage.getFrom();

String from = address[0].getAddress();

if (from == null)

from = "";

String personal = address[0].getPersonal();

if (personal == null)

personal = "";

String fromaddr = personal + "";

return fromaddr;

}

/**

* 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同 "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址

*/

public String getMailAddress(String type) throws Exception {

String mailaddr = "";

String addtype = type.toUpperCase();

InternetAddress[] address = null;

if (addtype.equals("TO") || addtype.equals("CC")

|| addtype.equals("BCC"))

{

if (addtype.equals("TO")) {

address = (InternetAddress[]) mimeMessage

.getRecipients(Message.RecipientType.TO);

} else if (addtype.equals("CC")) {

address = (InternetAddress[]) mimeMessage

.getRecipients(Message.RecipientType.CC);

} else {

address = (InternetAddress[]) mimeMessage

.getRecipients(Message.RecipientType.BCC);

}

if (address != null) {

for (int i = 0; i < address.length; i++) {

String email = address[i].getAddress();

if (email == null)

email = "";

else {

email = MimeUtility.decodeText(email);

}

String personal = address[i].getPersonal();

if (personal == null)

personal = "";

else {

personal = MimeUtility.decodeText(personal);

}

String compositeto = personal + "";

mailaddr += "," + compositeto;

}

mailaddr = mailaddr.substring(1);

}

} else {

throw new Exception("Error emailaddr type!");

}

return mailaddr;

}

/**

*

* 获取邮件主题

*/

public String getSubject() throws MessagingException {

String subject = "";

try {

subject = MimeUtility.decodeText(mimeMessage.getSubject());

if (subject == null)

subject = "";

} catch (Exception exce) {

}

return subject;

}

/*

* 获取邮件发送日期

*

*/

public java.util.Date getSentDate() throws Exception {

Date sentdate = mimeMessage.getSentDate();

SimpleDateFormat format = new SimpleDateFormat(dateformat);

return sentdate;

}

/**

* 获取邮件正文

*

* @return

*

*/

public String getBodyText() {

return bodytext.toString();

}

/**

* 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析

*

*

*/

public void getMailContent(Part part) throws Exception {

String contenttype = part.getContentType();

int nameindex = contenttype.indexOf("name");

boolean conname = false;

if (nameindex != -1)

c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java发送带附件的电子邮件的代码示例: ```java import javax.mail.*; import javax.mail.internet.*; import java.util.*; public class SendEmailWithAttachment { public static void main(String [] args) { // 收件人的电子邮件 ID String to = "recipient@example.com"; // 发件人的电子邮件 ID String from = "sender@example.com"; // 假设您是从本地主机发送电子邮件 String host = "localhost"; // 获取系统属性 Properties properties = System.getProperties(); // 设置邮件服务器 properties.setProperty("mail.smtp.host", host); // 获取默认的Session对象 Session session = Session.getDefaultInstance(properties); try { // 创建一个默认的MimeMessage对象 MimeMessage message = new MimeMessage(session); // 设置发送者和接收者 message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置邮件主题 message.setSubject("这是邮件主题"); // 创建消息部分 BodyPart messageBodyPart = new MimeBodyPart(); // 设置消息内容 messageBodyPart.setText("这是邮件内容"); // 创建多部分消息 Multipart multipart = new MimeMultipart(); // 设置文本消息部分 multipart.addBodyPart(messageBodyPart); // 附件文件路径和名称 String filename = "attachment.txt"; // 创建附件部分 messageBodyPart = new MimeBodyPart(); // 读取文件内容并设置附件 DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); // 添加附件部分 multipart.addBodyPart(messageBodyPart); // 发送完整消息 message.setContent(multipart ); // 发送邮件 Transport.send(message); System.out.println("邮件已发送成功!"); } catch (MessagingException mex) { mex.printStackTrace(); } } } ``` 在上述代码中,需要将 `to` 和 `from` 变量替换为实际的电子邮件地址。此外,还需要将 `host` 变量设置为您的邮件服务器的主机名。在发送电子邮件之前,还需要确保您的计算机有权访问该邮件服务器。在此示例中,附件文件名为 `attachment.txt`,您需要将其替换为实际的附件文件名和路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值