通过 JavaMail 实现QQ邮件发送

来源:互联网 发布:牛牛开挂软件 编辑:程序博客网 时间:2024/06/05 19:21


前提准备工作: 

           一、javax-mail jar包 

      二、邮件的发送方要开启POP3 和SMTP服务--即发送qq邮件的账号要开启POP3 和SMTP服务

开启方法:

  登陆qq邮箱 


1、点击—-账户 



2、下拉找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 —点击开启 


3、发送短信 —–点击确定 



4、稍等一会,很得到一个授权码! –注意:这个一定要记住,一会用到 

16位的字母,如:tccclqwjbkaadogg

得到的授权码一定要保存好,程序中要使用


完成上面准备步骤后:可以使用下面的代码

import java.util.Date;import java.util.Properties;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;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;public class JavaMailSend {public static void main(String[] args) {sendMail("2229592123@qq.com","南无阿弥陀佛,南无地藏王菩萨","佛菩萨来邮件了(⊙o⊙)哦,赶紧去看看吧~");}    public static boolean sendMail(String emailTo,String content,String subject) {            String fromEmail="236664898@qq.com";//你的QQ邮箱        String eMailType="smtp.qq.com";        String eMailAuthPassword="gnqttrhotabcdbgh";//QQ邮箱授权码 开通POP3/SMTP服务 的授权码        String body = content; //正文内容        try {//****************************创建会话***************************************            Properties props = new Properties();            props.put("mail.smtp.host",eMailType);//发件人使用发邮件的电子信箱服务器            props.put("mail.password",eMailAuthPassword);              props.put("mail.transport.protocol", "smtp");            props.setProperty("mail.debug", "true");            props.put("mail.smtp.auth","true"); //这样才能通过验证                        //下面这三句很重要,如果没有加入进去,qq邮箱会验证不成功,一直报503错误            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");             props.put("mail.smtp.port", "465");             props.put("mail.smtp.socketFactory.port", "465");                         //获得默认的session对象            Session mailSession = Session.getInstance(props);             mailSession.setDebug(true);//*****************************构造消息***************************************            MimeMessage mimeMessage = new MimeMessage(mailSession);            InternetAddress from=new InternetAddress(fromEmail);            mimeMessage.setFrom(from);            InternetAddress to=new InternetAddress(emailTo); //设置收件人地址并规定其类型            mimeMessage.setRecipient(Message.RecipientType.TO,to);                        mimeMessage.setSentDate(new Date()); //设置发信时间            mimeMessage.setSubject(subject); //设置主题            mimeMessage.setText(body); //设置 正文                        //给消息对象设置内容            BodyPart bodyPart=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象            bodyPart.setContent(body, "text/html;charset= GB2312");//设置 发送邮件内容为HTML类型,并为中文编码                        Multipart multipart=new MimeMultipart();            multipart.addBodyPart(bodyPart);                        mimeMessage.setContent(multipart);            mimeMessage.saveChanges();                        //发送消息            Transport transport=mailSession.getTransport("smtp");            transport.connect(eMailType,fromEmail,eMailAuthPassword);//发邮件人帐户密码,此外是我的帐户密码,使用时请修改news.properties中的值 。            transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());            transport.close();//*******************************发送消息********************************            mimeMessage.writeTo(System.out);//保存消息 并在控制台 显示消息对象中属性信息            System.out.println("邮件已成功发送到 " + emailTo);            return true;        } catch (Exception e) {            e.printStackTrace();            System.out.println(e);            return false;        }    }}