Java邮件发送带附件

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qingfeng812/article/details/8948281

 

package Test;

import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

/*
需要的jar 包 activation.jar   mail.jar
*/
public class Send2{  
    // 邮箱服务器  
    private String host = "smtp.qq.com";// 或者是 smtp.163(sina).com  
    private String username = "784602719@qq.com";   //邮箱名称
    private String password = " ";   //邮箱密码
    private String mail_to = "784602719@qq.com";   //发送至 人邮箱
    private String mail_from = "784602719@qq.com";   //发送人邮箱username
    private String mail_subject = "送你的幸福!湘竹集美伊客!";   //邮箱主题
    private String mail_body = "测试信息";   //邮箱内容
    private String personalName = "784602719@qq.com"; //发送人邮箱username
    public Send2(){}  
    public void send() throws Exception{  
        try{  
           Properties props=new Properties();  
 Authenticator auth = new Email_Autherticator(); // 进行邮件服务器用户认证  
           props.put("mail.smtp.host", host);  
           props.put("mail.smtp.auth", "true");  
           Session session = Session.getDefaultInstance(props, auth);  

          
           //设置session,和邮件服务器进行通讯。  
           MimeMessage message = new MimeMessage(session);  
           message.setSubject(mail_subject); // 设置邮件主题  
          
           //添加附件信息
           Multipart   mp   =   new   MimeMultipart(); 
           BodyPart mbp1 = new MimeBodyPart();
           FileDataSource fds = new FileDataSource("d:\\测试.doc");
           mbp1.setDataHandler(new DataHandler(fds));
            //设置附件名称
           mbp1.setFileName(MimeUtility.encodeText("d:\\测试.doc", "utf-8", null));
           mp.addBodyPart(mbp1);
         
          
          
           BodyPart mbp = new MimeBodyPart();
           mbp.setContent(mail_body, "text/html;charset=utf-8");
           mp.addBodyPart(mbp);

           message.setContent(mp);
         
           
           message.setSentDate(new Date()); // 设置邮件发送日期  
          
        
           Address address = new InternetAddress(mail_from, personalName);  
           message.setFrom(address); // 设置邮件发送者的地址  
           Address toAddress = new InternetAddress(mail_to); // 设置邮件接收方的地址  
           message.addRecipient(Message.RecipientType.TO, toAddress);  
           Transport.send(message); // 发送邮件  
           System.out.println("邮件发送成功!");  
        }catch (Exception ex){  
            //ex.printStackTrace();  
            if(ex instanceof javax.mail.AuthenticationFailedException){
             System.out.println("认证错误");
            }
           throw new Exception(ex.getMessage());  
        }  
   }  
 
    /** 
     * 用来进行服务器对用户的认证 
     */ 
    public class Email_Autherticator extends Authenticator{  
        public Email_Autherticator(){  
            super();  
        }  
 
        public Email_Autherticator(String user, String pwd){  
           super();  
           username = user;  
           password = pwd;  
        }  
 
        public PasswordAuthentication getPasswordAuthentication(){  
            return new PasswordAuthentication(username, password);  
        }  
    }  
 
    public static void main(String[] args){  
     Send2 sendmail = new Send2();  
         try{  
             sendmail.send();  
        }catch (Exception ex){  
             ex.printStackTrace();  
        }  
   }  


/*注意: 当发送人使用QQ 邮箱时,QQ 邮箱必须开启PoP3/SMTP 协议
如何启用PoP3/SMTP 协议
登陆QQ邮箱 https://mail.qq.com/
设置-->账号--> 开启PoP3/SMTP 协议*/

相关文章
|
9月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
507 1
消息中间件 缓存 监控
217 0
|
9月前
|
Java
使用java底层实现邮件的发送(含测试,源码)
使用java底层实现邮件的发送(含测试,源码)
|
7月前
|
Java API Maven
如何在Java中实现邮件发送功能?
如何在Java中实现邮件发送功能?
|
8月前
|
前端开发 Java 网络安全
基于Java Socket实现的SMTP邮件客户端 - 全面支持SSL, TLS
基于Java Socket实现的SMTP邮件客户端 - 全面支持SSL, TLS
91 0
|
9月前
|
Java API 数据安全/隐私保护
【亮剑】如何在Java项目中结合Spring框架实现邮件发送功能
【4月更文挑战第30天】本文介绍了如何在Java项目中结合Spring框架实现邮件发送功能。首先,需在`pom.xml`添加Spring和JavaMail依赖。然后,在`applicationContext.xml`配置邮件发送器,包括SMTP服务器信息。接着,创建一个使用依赖注入的`EmailService`类,通过`JavaMailSender`发送邮件。最后,调用`EmailService`的`sendSimpleEmail`方法即可发送邮件。最佳实践包括:使用配置管理敏感信息,利用`MimeMessage`构造复杂邮件,异常处理和日志记录,以及在大量发送时考虑使用邮件队列。
146 1
|
9月前
|
Java 数据安全/隐私保护 Windows
java实现邮件发送准备工作(前期配置)
java实现邮件发送准备工作(前期配置)
|
9月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
138 0
|
9月前
|
存储 Java 索引
【JAVA】 String 方法附件
【JAVA】 String 方法附件
48 0
|
Java 数据安全/隐私保护
【Java用法】java使用javax.mail读取邮箱,SpringBoot javax.mail获取邮件内容,根据时间段筛选邮件,内附代码,拿来即用
【Java用法】java使用javax.mail读取邮箱,SpringBoot javax.mail获取邮件内容,根据时间段筛选邮件,内附代码,拿来即用
489 0

热门文章

最新文章