欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用JavaMail发送邮件:smtp.163.com

程序员文章站 2022-04-10 15:02:45
一、利用JavaMail发送邮件案例: 1、maven项目结构: 2、先在pom.xml里边加入Javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven): 3、配置email.properties属性文件,主要是为了不更改代码的前提下,该改变发送邮件的一些基本信息: 4、实 ......

一、利用javamail发送邮件案例:

1、maven项目结构:

利用JavaMail发送邮件:smtp.163.com

2、先在pom.xml里边加入javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven):

利用JavaMail发送邮件:smtp.163.com

3、配置email.properties属性文件,主要是为了不更改代码的前提下,该改变发送邮件的一些基本信息:

利用JavaMail发送邮件:smtp.163.com

4、实现发送邮件的主体类sendmailutils,代码下:

package top.hzelin.util;

import java.io.ioexception;
import java.io.inputstream;
import java.util.properties;

import javax.mail.bodypart;
import javax.mail.message;
import javax.mail.messagingexception;
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 sendmailutils {
    private static string from = "";
    private static string user = "";
    private static string password = "";
    /*
     * 读取属性文件的内容,并为上面上个属性赋初始值
     */
    static {
        properties prop = new properties();
        inputstream is = sendmailutils.class.getclassloader().getresourceasstream("email.properties");
        try {
            prop.load(is);
            from = prop.getproperty("from");
            user=prop.getproperty("username");
            password=prop.getproperty("password");
        } catch (ioexception e) {
            e.printstacktrace();
        }
    }
    public static void sendmail(string to,string text,string title) {
        properties props = new properties();
        props.setproperty("mail.smtp.host", "smtp.163.com");//设置邮件服务器主机名
        props.put("mail.smtp.host", "smtp.163.com");
        props.put("mail.smtp.auth", "true");//发送服务器需要身份验证
        session session = session.getdefaultinstance(props);//设置环境信息
        session.setdebug(true);
        mimemessage message = new mimemessage(session);
        multipart multipart = null;
        bodypart contentpart = null;
        transport transport = null;
        try {
            message.setfrom(from);//设置发件人
            message.addrecipient(message.recipienttype.to, new internetaddress(to));
            message.setsubject(title);
            multipart = new mimemultipart();//设置附件
            contentpart = new mimebodypart();
            contentpart.setcontent(text, "text/html;charset=utf-8");
            multipart.addbodypart(contentpart);
            message.setcontent(multipart);
            message.savechanges();
            transport = session.gettransport("smtp");
            transport.connect("smtp.163.com", user, password);
            transport.sendmessage(message, message.getallrecipients());
        } catch (messagingexception e) {
            
            e.printstacktrace();
        }finally {
            try {
                transport.close();
            } catch (messagingexception e) {
                e.printstacktrace();
            }
        }
        
        
        
    }

}

5、测试发送邮件功能是否可用sendemailtest:

利用JavaMail发送邮件:smtp.163.com

注意:email.properties配置文件中的密码应该是客户端授权码,不是登录密码,设置位置如下:

利用JavaMail发送邮件:smtp.163.com