使用javamail、阿里云邮箱发送邮件

本文提供了一个使用JavaMail API通过阿里云邮箱SMTP服务发送邮件的示例代码,包括配置邮件服务器属性、创建邮件会话、连接SMTP服务器及构建简单邮件内容等关键步骤。

javaMail的maven坐标:

<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4</version>
		</dependency>


注意:

阿里云邮箱默认是开启了smtp,所以无需在阿里云邮箱设置这个(目前是这样的,2016.10.19);163邮箱普通用户是不能通过smtp协议发送邮件,除非是vip用户。


发送邮件代码:

package com.day24.JavaMail;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailTestForAliYunExample {
    public static void main(String[] args) throws MessagingException {
        Properties prop=new Properties();
        prop.put("mail.host","smtp.aliyun.com" );
        prop.put("mail.transport.protocol", "smtp");
        prop.put("mail.smtp.auth", "true");
        //使用java发送邮件5步骤
        //1.创建sesssion
        Session session=Session.getInstance(prop);
        //开启session的调试模式,可以查看当前邮件发送状态
        session.setDebug(true);


        //2.通过session获取Transport对象(发送邮件的核心API)
        Transport ts=session.getTransport();
        //3.通过邮件用户名密码链接,阿里云默认是开启个人邮箱pop3、smtp协议的,所以无需在阿里云邮箱里设置
        ts.connect("XXXX@aliyun.com", "password");


        //4.创建邮件

        Message msg=createSimpleMail(session);


        //5.发送电子邮件

        ts.sendMessage(msg, msg.getAllRecipients());
        }

         


        public static MimeMessage createSimpleMail(Session session) throws AddressException,MessagingException{
        //创建邮件对象
        MimeMessage mm=new MimeMessage(session);
        //设置发件人
        mm.setFrom(new InternetAddress("XXXX@aliyun.com"));
        //设置收件人
        mm.setRecipient(Message.RecipientType.TO, new InternetAddress("targetUser@163.com"));
        //设置抄送人
        mm.setRecipient(Message.RecipientType.CC, new InternetAddress("XXXX@qq.com"));

        mm.setSubject("XXX网站注册邮件!");
        mm.setContent("验证码为690", "text/html;charset=gbk");

        return mm;

        }
}



Java使用阿里云企业邮箱发送邮件有多种实现方法,以下为你详细介绍: ### 方法一:使用阿里云邮件推送服务发送HTML格式邮件 使用此方法需要将 `your_access_key_id`、`your_access_key_secret`、`sender@example.com`、`recipient@example.com` 等信息替换为真实信息,且要保证发信地址已在阿里云邮件推送服务中正确配置和验证。同时,可按需修改邮件主题、正文及其他参数设置 [^1]。 ### 方法二:Spring Boot实现使用阿里云企业邮箱发送验证码邮件 1. **导入依赖** ```xml <!-- JavaMail API --> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.6.2</version> </dependency> <!-- JavaMail implementation (e.g., for SMTP) --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> ``` 2. 后续可根据业务逻辑编写发送邮件的代码,利用上述依赖中的类和方法实现邮件发送功能 [^2]。 ### 方法三:通过SMTP协议实现邮件发送 1. **引入依赖** ```xml <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> ``` 2. **配置邮箱信息** 创建一个配置文件,例如 `properties.ini`,内容如下: ```ini smtpServer=smtp.aliyun.com port=465 fromUserName=你的阿里邮箱账号 fromUserPassword=你的邮箱密码 ``` 3. **编写代码实现发送邮件** - 定义实体类 `EmailInfo` 用于封装邮件信息: ```java public class EmailInfo { private String smtpServer; // SMTP服务器地址 private String port; // 端口 private String fromUser; // 登录SMTP服务器的用户名,发送邮箱地址 private String fromUserPassword; // 登录SMTP服务器的密码 private String toUser; // 收件人 private String subject; // 邮件主题 private String content; // 邮件正文 public EmailInfo() { } public EmailInfo(String toUser, String subject, String content) { this.toUser = toUser; this.subject = subject; this.content = content; this.smtpServer = PropKit.use("properties.ini").get("smtpServer"); this.port = PropKit.use("properties.ini").get("port"); this.fromUser = PropKit.use("properties.ini").get("fromUser"); this.fromUserPassword = PropKit.use("properties.ini").get("fromUserPassword"); } } ``` - 然后编写发送邮件的逻辑代码,利用 `javax.mail` 包中的类和方法,结合 `EmailInfo` 类中的信息,实现邮件发送 [^3][^4]。 ### 方法四:使用Spring Boot配置实现邮件发送 在 `application.yml` 中进行如下配置: ```yaml spring: mail: host: smtp.mxhichina.com port: 465 username: your-email@aliyun.com password: your-password properties: mail: smtp: auth: true ssl: enable: true socketFactory: class: javax.net.ssl.SSLSocketFactory ``` 之后在Spring Boot项目中使用 `JavaMailSender` 等类来实现邮件发送功能 [^5]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值