javaMail 发送附件

lovely_autumn 2011-11-25 02:40:31
请问javaMail
生成附件的数据流不保存在本地硬盘而是直接放入附件发送,这如何实现?
...全文
52 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxw000 2011-11-29
  • 打赏
  • 举报
回复
改造的Spring mail发送代附件的邮件:

package com.def.mail.face;

public interface SendMail {
public void send();
}

package com.def.mail;

import java.io.File;
import java.util.Date;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.def.mail.face.FilePathOfDate;
import com.def.mail.face.SendMail;

public class MailUtils implements SendMail {

private JavaMailSenderImpl senderImpl;
private String replyTo;
private String[] to;
private String[] cc;
private String[] bcc;
private Date sentDate;
private String subject;
private String text;
private String from;
private FilePathOfDate filePathOfDate;

public FilePathOfDate getFilePathOfDate() {
return filePathOfDate;
}

public void setFilePathOfDate(FilePathOfDate filePathOfDate) {
this.filePathOfDate = filePathOfDate;
}

public String getFrom() {
return from;
}

public void setFrom(String from) {
this.from = from;
}

public String getReplyTo() {
return replyTo;
}

public void setReplyTo(String replyTo) {
this.replyTo = replyTo;
}

public String[] getTo() {
return to;
}

public void setTo(String[] to) {
this.to = to;
}

public String[] getCc() {
return cc;
}

public void setCc(String[] cc) {
this.cc = cc;
}

public String[] getBcc() {
return bcc;
}

public void setBcc(String[] bcc) {
this.bcc = bcc;
}

public Date getSentDate() {
return sentDate;
}

public void setSentDate(Date sentDate) {
this.sentDate = sentDate;
}

public String getSubject() {
return subject;
}

public void setSubject(String subject) {
this.subject = subject;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

public JavaMailSenderImpl getSenderImpl() {
return senderImpl;
}

public void setSenderImpl(JavaMailSenderImpl senderImpl) {
this.senderImpl = senderImpl;
}

@Override
public void send() {
MimeMessage mailMessage = senderImpl.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(
mailMessage, true);
if (replyTo != null)
messageHelper.setReplyTo(replyTo);
if (to != null)
messageHelper.setTo(to);
if (cc != null)
messageHelper.setCc(cc);
if (bcc != null)
messageHelper.setBcc(bcc);
if (sentDate != null)
messageHelper.setSentDate(sentDate);
if (subject != null)
messageHelper.setSubject(subject);
if (from != null)
messageHelper.setFrom(from);
if (text != null)
messageHelper.setText(text);
if (filePathOfDate.getFilePathOfDate() != null)
for (String path : filePathOfDate.getFilePathOfDate()) {
FileSystemResource file = new FileSystemResource(new File(
path));
messageHelper.addAttachment(file.getFilename(), file);
}
senderImpl.send(mailMessage);

} catch (MessagingException e) {
e.printStackTrace();
}

}
}



67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧