public class Test1 {public static void main(String[] args) {sendMeetingInvitationEmail();}private static Properties props;private static Session session;public static void sendMeetingInvitationEmail() {try {props = new Properties();//发件人String fromEmail = props.getProperty("fromEmail", "XXX@outlook.com");//收件人(面试官)String toEmail = props.getProperty("toEmail", "XXX@outlook.com");props.put("mail.smtp.port", "587");props.put("mail.smtp.host", "smtp.office365.com");//当前smtp host设为可信任 否则抛出javax.mail.MessagingException: Could not                   convert socket to TLSprops.put("mail.smtp.ssl.trust", "smtp.office365.com");props.put("mail.transport.protocol", "smtp");props.put("mail.smtp.auth", "true");props.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.ssl", "true");//开启debug调试,控制台会打印相关信息props.put("mail.debug", "true");Authenticator authenticator = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {//发件人邮箱账号String userId = props.getProperty("userId", "XXX@outlook.com");//发件人邮箱密码(qq、163等邮箱用的是授权码,outlook是密码)String password = props.getProperty("password", "XXXXXXXX");return new PasswordAuthentication(userId, password);}};session = Session.getInstance(props, authenticator);MimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(fromEmail));message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));//标题message.setSubject("XXX公司诚邀应聘");//面试开始时间String startTime = getUtc("2019-09-04 14:00");//面试结束时间String endTime = getUtc("2019-09-04 15:00");StringBuffer buffer = new StringBuffer();buffer.append("BEGIN:VCALENDAR\n"+ "PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN\n"+ "VERSION:2.0\n"+ "METHOD:REQUEST\n"+ "BEGIN:VEVENT\n"//参会者+ "ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:你和应聘者\n"//组织者//+ "ORGANIZER:MAILTO:张三\n"+ "DTSTART:" + startTime + "\n"+ "DTEND:" + endTime + "\n"//面试地点+ "LOCATION:会议室01\n"//如果id相同的话,outlook会认为是同一个会议请求,所以使用uuid。+ "UID:" + UUID.randomUUID().toString() + "\n"+ "CATEGORIES:\n"//会议描述//+ "DESCRIPTION:Stay Hungry.<br>Stay Foolish.\n\n"+ "SUMMARY:面试邀请\n" + "PRIORITY:5\n"+ "CLASS:PUBLIC\n" + "BEGIN:VALARM\n"//提前10分钟提醒+ "TRIGGER:-PT10M\n" + "ACTION:DISPLAY\n"+ "DESCRIPTION:Reminder\n" + "END:VALARM\n"+ "END:VEVENT\n" + "END:VCALENDAR");BodyPart messageBodyPart = new MimeBodyPart();messageBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(buffer.toString(),"text/calendar;method=REQUEST;charset=\"UTF-8\"")));MimeMultipart multipart = new MimeMultipart();MimeBodyPart mimeBodyPart = new MimeBodyPart();//String emailText = getHtmlContent(sendEmailApi.getTemplateContent(tempValue),tempMap);//文本类型正文mimeBodyPart.setText("尊敬的张三:\r您好!\r特邀您...");//html类型正文//mimeBodyPart.setContent(emailText,"text/html;charset=UTF-8");//添加正文multipart.addBodyPart(mimeBodyPart);//添加日历multipart.addBodyPart(messageBodyPart);message.setContent(multipart);message.setSentDate(new Date());message.saveChanges();Transport.send(message);} catch (MessagingException me) {me.printStackTrace();} catch (Exception ex) {ex.printStackTrace();}}/*** 转utc时间** @param str* @return*/private static String getUtc(String str) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");long millionSeconds = 0;try {millionSeconds = sdf.parse(str).getTime();} catch (ParseException e1) {e1.printStackTrace();}//utc时间差8小时long currentTime = millionSeconds - 8 * 60 * 60 * 1000;Date date = new Date(currentTime);//格式化日期DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String nowTime = "";nowTime = df.format(date);//转换utc时间String utcTime = nowTime.replace("-", "").replace(" ", "T").replace(":", "");return utcTime;}
}

Java 发送邮件添加日历提醒,添加附件,添加文本相关推荐

  1. ios 添加日历提醒事件_将日历提醒事件添加到网页

    ios 添加日历提醒事件 Publicizing real-world events on web pages is a great idea, but it assumes that readers ...

  2. ios 添加日历提醒事件

    需要引入   #import <EventKit/EventKit.h> Privacy - Calendars Usage Description             App需要您的 ...

  3. 手把手教你实现Java发送邮件(1)-发送简单的文本

    说明:本博客已经收藏至我的gitee中的code_demo仓库(点击此链接跳转)中,且gitee中有相应的代码~ 欢迎访问~~ 不仅仅是code,还有一些通俗的讲解哦~ 文章目录 一.Java实现邮件 ...

  4. vivo手机怎么添加日程提醒?vivo手机添加日程方法

    1:打开手机日程提醒工具,点击底部"待办",并点击+. 2:在输入框里输入文本内容,然后点击铃铛图标添加提醒时间,最后别忘了点击"保存". 3:待办事项新增完成 ...

  5. Java发送邮件(带图片和附件)

    如何获取QQ邮箱授权码 package com.jason.mail;import com.sun.mail.util.MailSSLSocketFactory;import javax.activa ...

  6. Android添加系统日历提醒,并从项目日历查看添加的事件<日历 111>(带效果图)

    前言 今天写一个从代码中添加系统日历提醒的功能,(分两篇,一个添加到系统日历,一个从手机上能直接查看) 一.话不多说,先看效果 这个是项目中的日历以及日历事件展示 这个是系统日历以及事件展示 可以看的 ...

  7. xp系统怎样添加桌面计算机名,教你win10系统电脑桌面怎么添加日历

    很多用户都会选择在电脑的桌面上建立一个日历小挂件来提醒自己,其实在电脑桌面添加日历,可防止用户耽误工作进程的安排,不知win10系统电脑桌面怎么添加日历的用户,请来看看下面的介绍吧. 日历对很多用户来 ...

  8. 安卓调用日历提醒,并实现闹钟提醒功能,在miui上测试通过,日历提醒闹钟设置失败解决(附源码,源码已更新)

    不想看教程的可以直接走这里的后门去下载源码(源码已更新),源码小米手机亲测通过,有问题可以私信我:源码下载https://download.csdn.net/download/Spy003/87418 ...

  9. java 发送邮件添加附件_java邮件自动发送时添加网络附件

    查了很多资料都是使用本地资源作为附件发送.但是数据和程序分开时,还需要先下载数据,保存到本地再发送邮件.查了很多资料后,发现apach提供了很好的一个commons-mail.jar包,做了很好的封装 ...

最新文章

  1. 博客摘录:网络管理员的两天
  2. UVa10825 Anagram and Multiplication(dfs)
  3. 手机1像素线粗_关于移动端开发 1px 线的一些理解和解决办法
  4. UITableView从storyBoard加载UITableViewCell的细节以及布局内边距问题
  5. P3959 [NOIP2017 提高组] 宝藏
  6. 赛码网算法: 军训队列( python实现 )
  7. 破格晋升!一批高校教师脱颖而出
  8. 如何保证对象的唯一性
  9. 平衡二叉树平衡因子怎么计算_数据结构PHP 平衡二叉树(AVL)的平衡原理
  10. 缺芯下的新造车“月考”成绩单来了!
  11. jsp页面从session获取当前用户信息控制页面按钮是否显示
  12. spring实战(第4版读书笔记)
  13. TensorFlow实战minist数据集(CNN)
  14. 在app上查看开发代码
  15. js打开新页面的几种方式
  16. CAJ浏览器看论文如何设置背景为护眼色
  17. 代码背景护眼色设置RGB
  18. 项目实战之电子商城数据库源码
  19. 软件生命周期模型优缺点及适用范围
  20. 时钟程序设计java_Java数字时钟实现代码详解

热门文章

  1. 如何在QGIS中调用星图地球数据云的地图?
  2. python3.7运行报错_使用python3.7运行报错:No module named 'MySQLdb'
  3. 2022年自考专业(工商企业管理)金融理论与实务练习题
  4. Security onion 开源IDS入侵检测系统 2.3.220超详细保姆级部署教程
  5. 解析亚马逊退出中国市场后,沉默下注印度市场的品牌策略
  6. 找不到合适的人才?招聘思路该换了
  7. 在职高学计算机咋考大专,职高怎么考大专
  8. iOS 微博草稿箱代码实现
  9. HDU 3328 Flipper 魔术纸牌
  10. Firefox火狐浏览器如何修改页面的显示比例