个性化阅读
专注于IT技术分析

使用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@srcmini02.com";//change accordingly
  final String password="xxxxx";//change accordingly
 
  //1) get the session object   
  Properties properties = System.getProperties();
  properties.setProperty("mail.smtp.host", "mail.srcmini02.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();}
 }
}

如上例所示, 发送带有附件的电子邮件总共需要执行7个步骤。现在通过以下方式运行该程序:

加载jar文件 c:\> set classpath = mail.jar; activation.jar;。;
编译源文件 c:\> javac SendAttachment.java
由……运营 c:\> java SendAttachment
赞(0)
未经允许不得转载:srcmini » 使用Java发送带有附件的电子邮件

评论 抢沙发

评论前必须登录!