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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java saxexception_SAXException

公布的WebService别人调用时出现org.xml.sax.SAXexception发布的WebService别人调用时出现org.xml.sax.SAXexception发布的webservice,返回的一个json&#xff0c;php调用的时候有一定几率出现org.xml.sax.SAXexception&#xff0c;不知道是什么原因3热度com.ibm.ws.jsp.JspCor…

fun函数python_Python函数

Python函数一般函数定义方式def sum(a, b): return ab##返回a与b的和123一些概念与特性嵌套Python的函数是可以嵌套定义的def Fun1(): print("Runing Fun1...") def Fun2(): print("Runing Fun2...") Fun2()12345但是要注意在内部定义就只能在内部使用&…

java 给对象创建实例_Java中创建(实例化)对象的五种方式

Java中创建(实例化)对象的五种方式1、用new语句创建对象&#xff0c;这是最常见的创建对象的方法。2、通过工厂方法返回对象&#xff0c;如&#xff1a;String str String.valueOf(23);3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance(…

java markdown转word_一键将 Word 转换为 Markdown

李缘 | | Stata 连享会 (知乎 | 简书 | 码云方法一&#xff1a;Writage Pandoc -- 双剑合璧&#xff01;打开 Writage网页&#xff0c;点击Download&#xff0c;再点击Download Now完成下载网页下载运行安装程序&#xff0c;一般按照默认选项安装就好啦安装重启电脑&#xff0…

java盒图_java合成图片

package com.pbids.sanqin.util;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.net.URL;public class PicUtil {private Font font new Font("宋体", Font.PLA…

mysql+两天前+函数_Mysql 日期函数

一、MySQL 获得当前日期时间 函数1.获取当前日期时间(date time)&#xff1a;now()sysdate()sysdate()和now()的区别在于sysdate() 在函数执行时动态得到值, now() 在执行开始时值就得到了&#xff0c;看下面的例子就明白了&#xff1a;mysql> select sysdate(),sleep(3),s…

java队列优先级_优先级队列-Java的PriorityQueue与最小堆有何不同?

来自Java文档表示为平衡二进制堆的优先级队列&#xff1a;queue [n]的两个子级是queue [2 * n 1]和queue [2 *(n 1)]。 优先级队列由比较器或元素的自然顺序进行排序。这是使用PriorityQueue的最大堆和最小堆的工作代码-class HeapDemo {private final static int HEAP_SIZE …

deepin安装java_Deepin安装Eclipse

Deepin安装Eclipse系统环境:Deepin 15.5软件环境:Eclipse 4.7官网下载最新版elipse(4.7)安装板或压缩版均启动失败(弹框报错)&#xff0c;原因是deepin默认安装的openjdk1.9的版本,而eclipse支持的最低版本为jdk1.8版本,本机又需要jdk1.7版本的,因此需要修改eclipse启动vm参数才…

java定时任务中使用多线程_java项目中如何利用多线程实现一个定时器任务

java项目中如何利用多线程实现一个定时器任务发布时间&#xff1a;2020-11-10 16:04:03来源&#xff1a;亿速云阅读&#xff1a;86作者&#xff1a;Leah今天就跟大家聊聊有关java项目中如何利用多线程实现一个定时器任务&#xff0c;可能很多人都不太了解&#xff0c;为了让大家…

简述java在安卓开发中的应用_Java 自定义注解在安卓开发中的简单运用

定义&#xff1a;注解(Annotation)&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、接口、枚举、字段、方法、局部变量、方法参数等的前面&#xff0c;用来对这些元素进行说…

java数组个数无限_基于Java代码实现数字在数组中出现次数超过一半

下文通过几种方法给大家介绍java数组数字出现次数&#xff0c;具体内容如下所示&#xff1a;方法一&#xff1a;数组排序&#xff0c;然后中间值肯定是要查找的值。 排序最小的时间复杂度(快速排序)O(NlogN)&#xff0c;加上遍历。方法二&#xff1a;使用散列表的方式&#xff…

java合并sheet行_java poi Excel循环合并行

//Java poi 实现循环合并行&#xff0c;还是第一次遇到这种问题//在网上查了很多资料&#xff0c;都不是自己想要的//以下为自己研究后&#xff0c;写的一点东西&#xff0c;给大家分享&#xff0c;希望对大家能有思路上的启发&#xff0c;也希望大家能提出宝贵意见&#xff0c…

java类中自定义函数的调用_关于方法:自定义类中对函数的未解析引用

我无法解决看似微不足道的问题。我的问题可能是缺乏对Kotlin语言的经验(和理解)。不过&#xff0c;我将需要帮助。我做了一个自定义类&#xff0c;其中包含一个自定义函数。看起来很简单&#xff0c;但是当我尝试使用此功能时&#xff0c;我一直收到"未解决的引用"错…

java正则表达式 分词_[Java]使用正则表达式实现分词

手工分词稍嫌麻烦&#xff0c;不好维护&#xff0c;而利用正则表达式就利索多了。Java提供了java.util.regex.Matcher&#xff0c;java.util.regex.Pattern类来帮助我们实现此功能。例一&#xff1a;以下程序将把"This is a farm that that raises dairy cattle."中的…

as和java什么关系_深入理解happens-before和as-if-serial语义

概述本文大部分整理自《Java并发编程的艺术》&#xff0c;温故而知新&#xff0c;加深对基础的理解程度。指令序列的重排序我们在编写代码的时候&#xff0c;通常自上而下编写&#xff0c;那么希望执行的顺序&#xff0c;理论上也是逐步串行执行&#xff0c;但是为了提高性能&a…

java产生字符函数_java生成字符串md5函数类(javaSE)

//实现生成MD5值import java.io.BufferedInputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.securi…

java atomiclong 使用_Java并发AtomicLongArray类

全屏java.util.concurrent.atomic.AtomicLongArray类提供了可以原子读取和写入的底层long类型数组的操作&#xff0c;并且还包含高级原子操作。 AtomicLongArray支持对基础long类型数组变量的原子操作。 它具有获取和设置方法&#xff0c;如在变量上的读取和写入。 也就是说&am…

memcached client for java api,Memcached Client Forjava API

java_memcached-release 关键类及方法整理说明如下。 SockIOPool 这个类用来创建管理客户端和服务器通讯连接池&#xff0c;客户端主要的工作包括数据通讯、服务器定位、hash 码生成等都是由这个类完成的。 1.public static SockIOPool getInstance() 获得连接池的单态方…

对于JAVA的总结800字,java试用期转正工作总结500字

【www.gz85.com - 试用期工作总结500字】java试用期转正工作总结一年的时间,每当自己在总结它的时候,感觉是那么的短暂—弹指一挥间.而也就是在这一挥间,承载着太多太多,有收获与成就,有失败与不足.回头看看2012年的足迹,伴随着自己一年的是学习与坚持.2016年伊始是通过分销资源…

rtrim php,php rtrim() 格式化中文问题

先看以下代码var_dump(rtrim("互联网产品、", "、"));我们以为会得到结果 "互联网产品", 但实际上获得的是 ""互联网产&#xfffd;&#xfffd;"为什么呢, 其实这是编码引起的问题.rtrim()这个函数在处理字符时是按照ascii编码来…