为了发送带有附件的电子邮件, JavaMail API提供了一些有用的类, 例如BodyPart, MimeBodyPart等。
为了更好地理解此示例, 请首先学习使用JavaMail API发送电子邮件的步骤。 |
为了使用JavaMail API发送电子邮件, 你需要加载两个jar文件:mail.jar activation.jar下载这些jar文件(或)到Oracle网站下载最新版本。 |
通过电子邮件发送附件共有7个步骤。他们是:
- 获取会话对象
- 撰写讯息
- 创建MimeBodyPart对象并设置你的消息文本
- 创建新的MimeBodyPart对象并将DataHandler对象设置为此对象
- 创建Multipart对象并将MimeBodyPart对象添加到该对象
- 将multiplart对象设置为message对象
- 发信息
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
class SendAttachment{
public static void main(String [] args){String to="sonoojaiswal1987@gmail.com";
//change accordingly
final String user="sonoojaiswal@srcmini.com";
//change accordingly
final String password="xxxxx";
//change accordingly
//1) get the session object
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", "mail.srcmini.com");
properties.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
//2) compose message
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Message Aleart");
//3) create MimeBodyPart object and set your message text
BodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText("This is message body");
//4) create new MimeBodyPart object and set DataHandler object to this object
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
String filename = "SendAttachment.java";
//change accordingly
DataSource source = new FileDataSource(filename);
messageBodyPart2.setDataHandler(new DataHandler(source));
messageBodyPart2.setFileName(filename);
//5) create Multipart object and add MimeBodyPart objects to this object
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart1);
multipart.addBodyPart(messageBodyPart2);
//6) set the multiplart object to the message object
message.setContent(multipart );
//7) send message
Transport.send(message);
System.out.println("message sent....");
}catch (MessagingException ex) {ex.printStackTrace();
}
}
}
【使用Java发送带有附件的电子邮件】如上例所示, 发送带有附件的电子邮件总共需要执行7个步骤。现在通过以下方式运行该程序:
加载jar文件 | c:\> set classpath = mail.jar; activation.jar; 。; |
编译源文件 | c:\> javac SendAttachment.java |
由… … 运营 | c:\> java SendAttachment |
推荐阅读
- 用Java发送电子邮件
- 用Java接收电子邮件
- 用Java接收带有附件的电子邮件
- 用Java转发电子邮件
- 用Java删除电子邮件
- Applet中的事件处理
- change.exe指南(它是什么、用途、错误以及如何修复它())
- 如何在Windows和Mac上打开和播放.VOB文件(分步指南)
- 什么是CompatTelRunner.exe以及为什么它使用高磁盘/CPU()