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 com.sun.net.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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值