java mail qq邮箱配置 实例

程序入口:
Test_Email_N.java
import java.io.IOException;

import java.util.Date;

import java.util.Properties;



import javax.mail.Authenticator;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;



public class Test_Email_N {

    public static void  main(String args[]){

        try {

            send_email();

        }catch (Exception e) {

            e.printStackTrace();

        }

    }



    public static void send_email() throws IOException, AddressException, MessagingException{

        

        String to = "[email protected]";

        String subject = "subject";

        String content = "content";

        Properties properties = new Properties();

        properties.put("mail.smtp.host", "smtp.qq.com");

        properties.put("mail.smtp.port", "25");

        properties.put("mail.smtp.auth", "true");

        Authenticator authenticator = new Email_Authenticator("[email protected]", "password");

        javax.mail.Session sendMailSession = javax.mail.Session.getDefaultInstance(properties, authenticator);

        MimeMessage mailMessage = new MimeMessage(sendMailSession);

        mailMessage.setFrom(new InternetAddress("[email protected]"));

        // Message.RecipientType.TO属性表示接收者的类型为TO

        mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

        mailMessage.setSubject(subject, "UTF-8");

        mailMessage.setSentDate(new Date());

        // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象

        Multipart mainPart = new MimeMultipart();

        // 创建一个包含HTML内容的MimeBodyPart

        BodyPart html = new MimeBodyPart();

        html.setContent(content.trim(), "text/html; charset=utf-8");

        mainPart.addBodyPart(html);

        mailMessage.setContent(mainPart);

        Transport.send(mailMessage);

    }

}

其中依赖的jar包为javax.mail,我这里是maven管理的,直接用maven去下载jar包,也可以到https://java.net/projects/javamail/pages/Home直接下载jar包.

    <dependency>

            <groupId>javax.mail</groupId>

            <artifactId>mail</artifactId>

            <version>1.5.0-b01</version>

        </dependency>

Email_Authenticator.java,这里继承了Authenticator 类,用来封装name,和password的:

package com.infomorrow.webtest.JuxinliTest.restdetect;



import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;

public class Email_Authenticator extends Authenticator {

    String userName = null;

    String password = null;

    public Email_Authenticator() {

    }

    public Email_Authenticator(String username, String password) {

        this.userName = username;

        this.password = password;

    }

    protected PasswordAuthentication getPasswordAuthentication() {

        return new PasswordAuthentication(userName, password);

    }

}

配置就这么多,把邮箱密码改成自己的就可以了,否则会报错。程序到这就可以运行了!

 /*****************************************************************/

下面介绍的是配置properties文件来管理账号密码:

如下图,新建一个email.propertis文件。

 

java mail qq邮箱配置 实例

email.propertis:

mail.smtp.host=smtp.qq.com

mail.smtp.port=25

username=1215186706@qq.com

password=password
Test_Email.java 代码改为如下:
package com.infomorrow.webtest.JuxinliTest.restdetect;





import java.io.IOException;

import java.io.InputStream;

import java.util.Date;

import java.util.Properties;



import javax.mail.Authenticator;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;



public class Test_Email {

  public static void main(String args[]){

        try {

            send_email();

 }catch (Exception e) { e.printStackTrace(); } } public static void send_email() throws IOException, AddressException, MessagingException{ String to = "[email protected]"; String subject = "subject";//邮件主题 String content = "content";//邮件内容 Properties properties = new Properties(); InputStream resourceAsStream = null; try { resourceAsStream = Object.class.getResourceAsStream("/email.properties"); properties.load(resourceAsStream); } finally{ if (resourceAsStream!=null) { resourceAsStream.close(); } } System.err.println("properties:"+properties); properties.put("mail.smtp.host", properties.get("mail.smtp.host")); properties.put("mail.smtp.port", properties.get("mail.smtp.port")); properties.put("mail.smtp.auth", "true"); Authenticator authenticator = new Email_Authenticator(properties.get("username").toString(), properties.get("password").toString()); javax.mail.Session sendMailSession = javax.mail.Session.getDefaultInstance(properties, authenticator); MimeMessage mailMessage = new MimeMessage(sendMailSession); mailMessage.setFrom(new InternetAddress(properties.get("username").toString())); // Message.RecipientType.TO属性表示接收者的类型为TO mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); mailMessage.setSubject(subject, "UTF-8"); mailMessage.setSentDate(new Date()); // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 Multipart mainPart = new MimeMultipart(); // 创建一个包含HTML内容的MimeBodyPart BodyPart html = new MimeBodyPart(); html.setContent(content.trim(), "text/html; charset=utf-8"); mainPart.addBodyPart(html); mailMessage.setContent(mainPart); Transport.send(mailMessage); } }

 

ok,到此为止。

 

 

 

你可能感兴趣的:(java mail)