java代码实现email邮件发送

本文介绍了如何使用Java编程通过华为云SMTP服务,配置发件人、收件人信息,发送带有附件的电子邮件,包括邮件主题、内容和文件的处理。
摘要由CSDN通过智能技术生成

 背景       OA流程归档后将文件通过华为云企业邮箱发送给指定邮箱

       配置信息:

准备:华为云的邮箱地址,账号生成的smtp客户端密码,收件人的邮箱地址

package com.engine.customcode.api.out.bean;

/**
 * 邮件参数配置
 */
public class MailProperties {
    // 发件人
    public static final String FROM = "1";
    // 华为云的SMTP服务器地址
    public static final String HOST = "smtp.sparkspace.huaweicloud.com";
    // 华为云的SMTP服务器端口
    public static final String PORT = "465";
    // 邮箱地址
    public static final String USERNAME = "XXXXXXX@XXX";
    // SMTP生成的客户端密码
    public static final String PASSWORD = "XXXXXXXXX";
}
package com.engine.customcode.api.out.bean;

import lombok.Data;

/**
 * 邮件信息
 */
@Data
public  class Email {
    // 主题
    private String subject;
    // 内容
    private String conetent;
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
    public String getConetent() {
        return conetent;
    }
    public void setConetent(String conetent) {
        this.conetent = conetent;
    }
}

代码实现:

    /**
     * email邮件发送
     *
     * @return 返回信息
     */
    public String eMailSend() {
        final String username = MailProperties.USERNAME;
        final String password = MailProperties.PASSWORD;
        //发件人邮箱地址
        String toEmail = "XXXXXXXX@qq.com";
        Email email = new Email();
        //主题
        email.setSubject("测试主题");
        String subject = email.getSubject();
        //内容
        email.setConetent("这是一封测试邮件");
        String conetent = email.getConetent();

        // 文件路径
        String filePath = "C:\\Users\\yijia\\Desktop\\outfile\\测试文档.docx";

        // 设置邮件服务器
        Properties props = new Properties();
        props.put("mail.smtp.host", MailProperties.HOST);
        props.put("mail.smtp.port", MailProperties.PORT);
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");

        // 创建Session对象
        Session session = Session.getInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {
            // 创建MimeMessage对象
            Message message = new MimeMessage(session);
            // 设置发件人
            message.setFrom(new InternetAddress(username));
            // 设置收件人
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
            // 设置邮件主题
            message.setSubject(subject);

            // 创建一个Multipart
            MimeMultipart multipart = new MimeMultipart();

            // 创建邮件正文
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText(conetent);
            multipart.addBodyPart(messageBodyPart);

            // 创建附件
            MimeBodyPart attachmentPart = new MimeBodyPart();
            DataSource source = new FileDataSource(filePath);
            attachmentPart.setDataHandler(new DataHandler(source));
            attachmentPart.setFileName(new File(filePath).getName());
            multipart.addBodyPart(attachmentPart);

            // 设置内容
            message.setContent(multipart);

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

            return new R().success("邮件发送成功!");
        } catch (MessagingException e) {
            e.printStackTrace();
            System.out.println("邮件发送失败:" + e.getMessage());
            return new R().success("邮件发送失败!!!");
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值