java发送邮件

目录

  • 一、准备工作
  • 二、引入依赖
  • 三、代码

一、准备工作

.发送的邮件账号要开通POP3 和SMTP服务,获取到授权码
以qq邮箱为例,打开QQ邮箱,点击设置。
java发送邮件_第1张图片
选择账号,把POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下面,POP3/SMTP选择开启,如果已经开启了先关闭再开启。
java发送邮件_第2张图片
手机验证后会得到一串授权码,授权码要保存好,下面要用。
java发送邮件_第3张图片

二、引入依赖

<dependency>
    <groupId>javax.mailgroupId>
    <artifactId>mailartifactId>
    <version>1.4.7version>
    <scope>providedscope>
dependency>

三、代码

import org.springframework.stereotype.Service;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

@Service
public class SendEmailUtil {
    public void sendMail(String subject,String content,String emailAddres) throws Exception {
        String host = "smtp.qq.com";            //邮箱服务器地址
        String port = "25";                     //发送邮件的端口
        String auth = "ture";                  //是否需要进行身份验证,视调用的邮箱而定,比方说QQ邮箱就需要,否则就会发送失败
        String protocol = "smtp";               //传输协议
        String mailFrom = "[email protected]";       //发件人邮箱
        String personalName = "Tom";         //发件人邮箱别名,相当于昵称,可随便写
        String username = "[email protected]";     //发件人邮箱用户名
        String password = "ubsdgnspgdhj";     //发件人邮箱授权码
        String mailDebug = "false";           //是否开启debug
        String contentType = null;            //邮件正文类型
       

        Properties props = new Properties();
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", auth == null ? "true" : auth);
        props.put("mail.transport.protocol", protocol == null ? "smtp" : protocol);
        props.put("mail.smtp.port", port == null ? "25" : port);
        props.put("mail.debug", mailDebug == null ? "false" : mailDebug);
        Session mailSession = Session.getInstance(props);

        // 设置session,和邮件服务器进行通讯。
        MimeMessage message = new MimeMessage(mailSession);
        // 设置邮件主题
        message.setSubject(subject);
        // 设置邮件正文
        message.setContent(content, contentType == null ? "text/html;charset=UTF-8" : contentType);
        // 设置邮件发送日期
        message.setSentDate(new Date());
        InternetAddress address = new InternetAddress(mailFrom, personalName);
        // 设置邮件发送者的地址
        message.setFrom(address);
        // 设置邮件接收方的地址
        message.setRecipients(Message.RecipientType.TO, emailAddres);
        Transport transport = null;
        transport = mailSession.getTransport();
        message.saveChanges();

        transport.connect(host, username, password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
}

测试:

public class Test {
    public static void main(String[] args) {
         try {
            sendEmailUtil.sendMail("主题aaaaaa","邮件内容aaaa","[email protected]");
          } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(java,javamail,smtp,java邮件发送,邮件,java,email)