1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java发送会议邮件 时区_【上海校区】基于JavaMail的日历(会议)邮件发送实现

Java发送会议邮件 时区_【上海校区】基于JavaMail的日历(会议)邮件发送实现

时间:2021-11-29 04:19:24

相关推荐

Java发送会议邮件 时区_【上海校区】基于JavaMail的日历(会议)邮件发送实现

[Java] 纯文本查看 复制代码/**

* 发送会议邀请邮件

*

* @param toMailAddress 收件人(邀约人),支持多个

* @param mailSubject 邮件主题

* @param mailContent 邮件内容(建议传入velocity去构建生成的HTML内容)

* @param summary 摘要,即日历(日程)上显示的标题

* @param startTimestamp 会议开始时间

* @param endTimestamp 会议结束时间

* @param locationContent 会议位置

* @return 发送结果

*/

public Boolean sendMeetingMailTemplate(String[] toMailAddressArray, String mailSubject, String mailContent,

String summary, Long startTimestamp, Long endTimestamp,

String locationContent) {

if (toMailAddressArray == null || toMailAddressArray.length <= 0 || StringUtils.isEmpty(fromMailAddress_preview)

|| StringUtils.isEmpty(mailSubject) || StringUtils.isEmpty(mailContent) || StringUtils.isEmpty(summary)) {

return false;

}

boolean sendStatus = false;

Security.addProvider(new .ssl.internal.ssl.Provider());

Properties prop = new Properties();

prop.put("mail.smtp.host", mailHost);

prop.put("mail.smtp.auth", mailSmtpAuth);

prop.put("mail.smtp.port", mailPort);

prop.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);

prop.setProperty("mail.smtp.socketFactory.fallback", "false");

prop.setProperty("mail.smtp.socketFactory.port", mailSmtpSocketFactoryPort);

MailAuthenticator authenticator = new MailAuthenticator(mailUsername, mailPassword);

Session session = Session.getDefaultInstance(prop, authenticator);

MimeMessage message = new MimeMessage(session);

try {

message.addHeaderLine("method=REQUEST");

message.addHeaderLine("charset=UTF-8");

message.addHeaderLine("component=VEVENT");

message.setFrom(new InternetAddress(fromMailAddress_preview));

InternetAddress[] addressArray = new InternetAddress[toMailAddressArray.length];

for (int i = 0; i < toMailAddressArray.length; i++) {

addressArray[i] = new InternetAddress(toMailAddressArray[i]);

}

message.addRecipients(Message.RecipientType.TO, addressArray);

message.setSubject(mailSubject);

} catch (MessagingException e) {

e.printStackTrace();

}

// 会议内容核心拼装

BodyPart meetingBodyPart = new MimeBodyPart();

try {

meetingBodyPart.setHeader("Content-Class", "urn:content- classes:calendarmessage");

meetingBodyPart.setHeader("Content-ID", "calendar_message");

meetingBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(

buildCalendar(summary, startTimestamp, endTimestamp, locationContent, toMailAddressArray).toString(),

"text/calendar")));

} catch (IOException | MessagingException e) {

e.printStackTrace();

}

// 邮件原文组合+发送

Multipart multipart = new MimeMultipart();

try {

multipart.addBodyPart(meetingBodyPart);

BodyPart contentBodyPart = new MimeBodyPart();

// 普通文件赋值

//contentBodyPart.setText(mailContent);

/* HTML内容赋值

Map model = new HashMap<>();

model.put("sscontent", "test测试师善");

VelocityContext velocityContext = new VelocityContext();

model.put("sscontent", model.get("sscontent"));

String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "/mail/test.vm", "UTF-8",

model);*/

contentBodyPart.setContent(mailContent, "text/html; charset=utf-8");

multipart.addBodyPart(contentBodyPart);

message.setContent(multipart);

Transport.send(message);

sendStatus = true;

} catch (MessagingException e) {

e.printStackTrace();

}

return sendStatus;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。