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");
        }
    }

发送成功

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实时录音可以通过Java Sound API来实现,同时可以将录音数据传输到阿里云上,实现语音识别等功能。以下是一个简单的示例代码: ```java import javax.sound.sampled.*; import com.aliyun.asr.client.AsrClient; import com.aliyun.asr.client.AsrClientFactory; import com.aliyun.asr.model.StartAsrRequest; import com.aliyun.asr.model.StartAsrResponse; public class RealtimeRecording { public static void main(String[] args) throws Exception { // 创建音频输入流 AudioFormat format = new AudioFormat(16000, 16, 1, true, false); DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info); line.open(format); line.start(); // 创建阿里云语音识别客户端 AsrClient asrClient = AsrClientFactory.getAsrClient(); StartAsrRequest request = new StartAsrRequest(); request.setEnablePunctuation(true); request.setEnableInverseTextNormalization(true); // 开始录音和识别 while (true) { byte[] buffer = new byte[640]; int count = line.read(buffer, 0, buffer.length); if (count > 0) { request.setAudio(buffer); StartAsrResponse response = asrClient.startAsr(request); System.out.println(response.getResult()); } } } } ``` 在这个示例代码中,创建了一个音频输入流,并通过Java Sound API实时录音。然后,创建了一个阿里云语音识别客户端,并在录音过程中不断地将录音数据传输到阿里云进行语音识别。最后,输出识别结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值