javaMail

  
  
  
  
  1. import java.util.Properties; 
  2.  
  3. import javax.activation.DataHandler; 
  4. import javax.activation.FileDataSource; 
  5. import javax.mail.BodyPart; 
  6. import javax.mail.Message; 
  7. import javax.mail.MessagingException; 
  8. import javax.mail.Session; 
  9. import javax.mail.Transport; 
  10. import javax.mail.internet.AddressException; 
  11. import javax.mail.internet.InternetAddress; 
  12. import javax.mail.internet.MimeBodyPart; 
  13. import javax.mail.internet.MimeMessage; 
  14. import javax.mail.internet.MimeMultipart; 
  15.  
  16. public class SendAttachment{ 
  17.      public static void main(String[] args) { 
  18.       try { 
  19.                
  20.         // 创建 properties ,里面包含了发送邮件服务器的地址。  
  21.          Properties mailProps = new Properties(); 
  22.           
  23.         //"mail.smtp.host"随便叫啥都行,"192.0.0.1"必须是真实可用的。  
  24.          mailProps.put("mail.smtp.host""smtp.qq.com"); 
  25.           
  26.         // 创建 session  
  27.         Session mailSession = Session.getDefaultInstance(mailProps); 
  28.          
  29.         // 创建 邮件的message,message对象包含了邮件众多有的部件,都是封装成了set方法去设置的  
  30.         MimeMessage message = new MimeMessage(mailSession); 
  31.          
  32.      // 设置发信人  
  33.         message.setFrom(new InternetAddress("[email protected]")); 
  34.          
  35.         //收信人  
  36.         message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); 
  37.          
  38.         // 邮件标题  
  39.         message.setSubject("I love you"); //haha,吓唬人 
  40.          
  41.         // 创建 Mimemultipart,这是包含多个附件是必须创建的。如果只有一个内容,没有附件,可以直接用message.setText(String str)  
  42.         //去写信的内容,比较方便。附件等于是要创建多个内容,往下看更清晰。 
  43.          
  44.         MimeMultipart multi = new MimeMultipart(); 
  45.          
  46.         // 创建 BodyPart,主要作用是将以后创建的n个内容加入MimeMultipart.也就是可以发n个附件。我这里有2个BodyPart.  
  47.         BodyPart textBodyPart = new MimeBodyPart(); //第一个BodyPart.主要写一些一般的信件内容。 
  48.  
  49.         textBodyPart.setText("详情见附件"); 
  50.          
  51.  
  52.        // 压入第一个BodyPart到MimeMultipart对象中。  
  53.        multi.addBodyPart(textBodyPart);  
  54.        // 创建第二个BodyPart,是一个FileDAtaSource  
  55.         
  56.         //必须存在的文档,否则throw异常。  
  57.         FileDataSource fds = new FileDataSource("f:\\Java单态模式.txt"); 
  58.          
  59.      BodyPart fileBodyPart = new MimeBodyPart(); //第二个BodyPart  
  60.      fileBodyPart.setDataHandler(new DataHandler(fds)); //字符流形式装入文件  
  61.      fileBodyPart.setFileName("report.xls"); //设置文件名,可以不是原来的文件名。 
  62.       
  63.      //不讲了,同第一个BodyPart.  
  64.       multi.addBodyPart(fileBodyPart); 
  65.        
  66.      // MimeMultPart作为Content加入message  
  67.  
  68.       message.setContent(multi); 
  69.        
  70.      // 所有以上的工作必须保存。 
  71.        
  72.      message.saveChanges();  
  73.  
  74.     //发送,利用Transport类,它是SMTP的邮件发送协议,  
  75.       
  76.      Transport.send(message);  
  77.   
  78.     } catch (AddressException e) { 
  79.         // TODO Auto-generated catch block 
  80.         e.printStackTrace(); 
  81.     } catch (MessagingException e) { 
  82.         // TODO Auto-generated catch block 
  83.         e.printStackTrace(); 
  84.     }  
  85.           
  86.           
  87.      } 

 

你可能感兴趣的:(职场,javamail,休闲,java发邮件)