背景 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("邮件发送失败!!!");
}
}