java对接阿里云企业邮箱,SpringBoot实现使用阿里云企业邮箱发送验证码邮件(工具类)

一.购买阿里云企业邮箱

1.请老板买企业邮箱(阿里云企业邮箱)

2.登录看是否购买成功(阿里云企业邮箱登录接口)

3.登录成功后新建一个员工邮箱,一般最低的可以新建五个员工邮箱,可以指定需要的域名名称

(好处:新建邮箱可以保证员工邮箱封号的时候不影响主号,并且可以自定义邮件名称,当然也可以不新建!)

4.使用阿里云企业员工邮箱的账号和密码登录,一般第一次登录都是需要更改密码的,然后绑定安全手机号,登录成功即可

二.java后端代码(工具类)

1.导入依赖

<!-- 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.导入Utils工具类

请把邮箱的账号和密码更换为自己的

其中接收的参数有String字符串类型的邮件内容,String字符串类型的收件人的邮箱(只能发送一个)

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
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;
import javax.mail.internet.MimeUtility;

import org.apache.commons.lang3.StringUtils;

public class ALiYunMailUtil {

    private static final String SEND_ADDRESS = "阿里云企业邮箱的账号";
    private static final String SEND_PASSWORD = "阿里云企业邮箱的密码";
    private static final String HOST = "smtp.qiye.aliyun.com";
    private static final String PORT = "25"; // 或80
    private static final String SUBJECT = "Email verification code";
    private static final String FILE_PATH = null;
    private static final String CC = null;

    /**
     * @param content 邮件内容
     * @param internetAddress 收件人地址
     * @throws Exception
     * @throws AddressException
     */
    public static void sendMail(String content, String internetAddress) throws AddressException, Exception {
        // 设置SSL连接、邮件环境
       // Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
       // final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
        Properties props = System.getProperties();
        props.setProperty("mail.smtp.host", HOST);
      //  props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.port", PORT); // 设置端口
        props.setProperty("mail.debug", "true"); // 启用调试
        props.setProperty("mail.smtp.socketFactory.port", "465");
        props.setProperty("mail.smtp.auth", "true");

        // 建立邮件会话
        Session session = Session.getDefaultInstance(props, new Authenticator() {   // 身份认证
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(SEND_ADDRESS, SEND_PASSWORD); // 发件人账号、密码
            }
        });

        // 建立邮件对象
        MimeMessage message = new MimeMessage(session);

        // 设置邮件的发件人、收件人、主题
        message.setFrom(new InternetAddress(SEND_ADDRESS)); // 发件人账号
        message.setRecipients(Message.RecipientType.TO, internetAddress); // 收件人账号

        // 标题
        message.setSubject(SUBJECT); // 邮件标题

        // 内容
        Multipart multipart = new MimeMultipart();
        BodyPart contentPart = new MimeBodyPart();
        // 将内容包装在HTML样式标签中,调整字体粗细
        String styledContent = "<html><body><p style='font-weight: normal;'>"
                + content
                + "</p></body></html>";
        contentPart.setContent(styledContent, "text/html;charset=utf-8"); // 邮件内容
        multipart.addBodyPart(contentPart);

        // 附件部分
        if (StringUtils.isNotBlank(FILE_PATH)) {
            BodyPart attachPart = new MimeBodyPart();
            FileDataSource fileDataSource = new FileDataSource(FILE_PATH); // 附件地址 D:/题库上传模板v1.xlsx
            attachPart.setDataHandler(new DataHandler(fileDataSource));
            attachPart.setFileName(MimeUtility.encodeText(fileDataSource.getName()));
            multipart.addBodyPart(attachPart);
        }

        message.setContent(multipart);

        // 抄送地址
        if (StringUtils.isNotBlank(CC)) {
            InternetAddress[] internetAddressCC = new InternetAddress().parse(CC);
            message.setRecipients(Message.RecipientType.CC, internetAddressCC);
        }

        // 发送邮件
        Transport.send(message);
    }
}


三.简单测试

注意:发送邮件请避免使用外网,可能会导致安全模式开启(封号_亲身经历)

使用main方法测试发送邮件

public static void main(String[] args) {
        String emailInfo ="你好同学";
        String emails = "791385397@qq.com";
        try {
            ALiYunMailUtil.sendMail(emailInfo, emails);
        } catch (Exception e) {
            throw new BaseException("Sorry, but there are many people using it at the moment, so please try again later");
        }
    }

发送成功

有问题请家人们及时指导,谢谢!

Java实现短信验证码接收阿里云服务,通常会使用阿里云的 SMS SDK(简单邮件传输协议短信服务)。以下是基本步骤: 1. 注册并配置:首先,需要在阿里云控制台创建一个短信服务的账号,并获取AccessKey ID、Access Key Secret以及所属的短信模板Code。 2. 添加依赖:在项目中引入阿里的SDK,例如Spring Cloud Alibaba Mobile SDK或直接下载jar包集成。 ```java // Maven依赖 <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>latest</version> </dependency> <dependency> <groupId>com.aliyun.dysmsapi</groupId> <artifactId>dysmsapi-spring-boot-starter</artifactId> <version>latest</version> </dependency> ``` 3. 配置SDK:在应用启动时,设置AccessKeyId、AccessKeySecret等信息。 ```java Properties props = new Properties(); props.setProperty("aliyun_sms_endpoint", "your.sms.endpoint"); props.setProperty("aliyun_sms_accessKeyId", "your_access_key_id"); props.setProperty("aliyun_sms_accessKeySecret", "your_access_key_secret"); DyssmsApi smsClient = new DyssmsApi(new DefaultProfile(props)); ``` 4. 发送验证码:编写发送验证码的方法,通过SDK的`sendSms`接口。 ```java Map<String, String> request = new HashMap<>(); request.put("PhoneNumbers", "接收者电话号码"); request.put("SignName", "您的应用名"); request.put("TemplateCode", "短信模板Code"); SendSmsRequest sendRequest = new SendSmsRequest(request); SendSmsResponse response = smsClient.sendSms(sendRequest); ``` 5. 异常处理:确保捕获可能出现的异常,如网络错误、权限不足等。 6. 日志记录:对于发送结果进行记录,以便于追踪和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值