使用Java发送带有附件的电子邮件

为了发送带有附件的电子邮件, JavaMail API提供了一些有用的类, 例如BodyPart, MimeBodyPart等。

为了更好地理解此示例, 请首先学习使用JavaMail API发送电子邮件的步骤。
为了使用JavaMail API发送电子邮件, 你需要加载两个jar文件:mail.jar activation.jar下载这些jar文件(或)到Oracle网站下载最新版本。
使用JavaMail API发送带有附件的电子邮件
通过电子邮件发送附件共有7个步骤。他们是:
  1. 获取会话对象
  2. 撰写讯息
  3. 创建MimeBodyPart对象并设置你的消息文本
  4. 创建新的MimeBodyPart对象并将DataHandler对象设置为此对象
  5. 创建Multipart对象并将MimeBodyPart对象添加到该对象
  6. 将multiplart对象设置为message对象
  7. 发信息
使用Java发送带有附件的电子邮件的示例
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

    推荐阅读