iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java实战-用Java mail实现Exchange发邮件给你喜欢的人
  • 164
分享到

Java实战-用Java mail实现Exchange发邮件给你喜欢的人

java开发语言mailExchange后端 2023-09-01 19:09:51 164人浏览 薄情痞子
摘要

目录 1. 官方指导文章2. 需要用到com.microsoft.ews-java-api2.1 maven中添加2.2 gradle中添加 3. 完整代码:新建一个MailUtil.ja

目录

如何用java mail 实现Exchange发邮件的功能

1. 官方指导文章

官方文章:https://github.com/OfficeDev/ews-java-api/wiki/Getting-Started-Guide

在这里插入图片描述

Creating a Recurring Appointment
To schedule a recurring appointment, create an appointment for the first meeting time, and choose ‘Recurrence.’ Outlook will use your initial appointment as a start date. Set the end date by specifying a date for the recurring appointments to end or a number of occurrences for this recurring appointment. You can also specify no end date. If the meeting will occur on more than one day of the week, choose the days on which the meeting/appointment will occur. You can use the EWS JAVA api to create a recurring appointment, as shown in the following code.

Appointment appointment = new Appointment(service);appointment.setSubject("Recurrence Appointment for JAVA XML TEST");appointment.setBody(MessageBody.getMessageBodyFromText("Recurrence Test Body Msg"));SimpleDateFORMat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date startDate = formatter.parse("2010-05-22 12:00:00");Date endDate = formatter.parse("2010-05-22 13:00:00");appointment.setStart(startDate);//new Date(2010-1900,5-1,20,20,00));appointment.setEnd(endDate); //new Date(2010-1900,5-1,20,21,00));formatter = new SimpleDateFormat("yyyy-MM-dd");Date recurrenceEndDate = formatter.parse("2010-07-20");appointment.setRecurrence(new Recurrence.DailyPattern(appointment.getStart(), 3));appointment.getRecurrence().setStartDate(appointment.getStart());appointment.getRecurrence().setEndDate(recurrenceEndDate);appointment.save();

Availability Service
The EWS Java API makes it very easy to consume the Availability service. The Availability service makes it possible to retrieve free/busy information for users for whom the caller does not necessarily have access rights. It also provides meeting time suggestions.

The following example shows how to call the Availability service by using the EWS Java API.

// Create a list of attendees for which to request availability// information and meeting time suggestions.List<AttendeeInfo> attendees = new ArrayList<AttendeeInfo>();attendees.add(new AttendeeInfo("test@contoso.com"));attendees.add(new AttendeeInfo("temp@contoso.com"));SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");//minimum time frame allowed by API is 24 hoursDate start = formatter.parse("2010/05/18"); Date end = formatter.parse("2010/05/19");// Call the availability service.GetUserAvailabilityResults results = service.getUserAvailability(attendees,new TimeWindow(start, end),AvailabilityData.FreeBusyAndSuggestions);// Output attendee availability information.int attendeeIndex = 0;for (AttendeeAvailability attendeeAvailability : results.getAttendeesAvailability()) {System.out.println("Availability for " + attendees.get(attendeeIndex));if (attendeeAvailability.getErrorCode() == ServiceError.NoError) {for (CalendarEvent calendarEvent : attendeeAvailability.getCalendarEvents()) {System.out.println("Calendar event");System.out.println("  Start time: " + calendarEvent.getStartTime().toString());System.out.println("  End time: " + calendarEvent.getEndTime().toString());if (calendarEvent.getDetails() != null){System.out.println("  Subject: " + calendarEvent.getDetails().getSubject());// Output additional properties.}}}attendeeIndex++;}// Output suggested meeting times.for (Suggestion suggestion : results.getSuggestions()) {System.out.println("Suggested day: " + suggestion.getDate().toString());System.out.println("Overall quality of the suggested day: " + suggestion.getQuality().toString());for (TimeSuggestion timeSuggestion : suggestion.getTimeSuggestions()) {System.out.println("  Suggested time: " + timeSuggestion.getMeetingTime().toString());System.out.println("  Suggested time quality: " + timeSuggestion.getQuality().toString());// Output additonal properties.}}

Using pull notifications with the EWS JAVA API
The following example shows how to subscribe to pull notifications and how to retrieve the latest events.

// Subscribe to pull notifications in the Inbox folder, and get notified when a new mail is received, when an item or folder is created, or when an item or folder is deleted.List  folder = new ArrayList();folder.add(new FolderId().getFolderIdFromWellKnownFolderName(WellKnownFolderName.Inbox));PullSubscription subscription = service.subscribeToPullNotifications(folder,5, null , EventType.NewMail, EventType.Created, EventType.Deleted);// Wait a couple minutes, then poll the server for new events.GetEventsResults events = subscription.getEvents();// Loop through all item-related events.for(ItemEvent itemEvent : events.getItemEvents()) {if (itemEvent.getEventType()== EventType.NewMail) {EmailMessage message = EmailMessage.bind(service, itemEvent.getItemId());} else if(itemEvent.getEventType()==EventType.Created) {Item item = Item.bind(service, itemEvent.getItemId());} else if(itemEvent.getEventType()==EventType.Deleted) {break;} }// Loop through all folder-related events.for (FolderEvent folderEvent : events.getFolderEvents()) {if (folderEvent.getEventType()==EventType.Created) {Folder folder = Folder.bind(service, folderEvent.getFolderId());} else if(folderEvent.getEventType()==EventType.Deleted) {System.out.println("folder  deleted”+ folderEvent.getFolderId.UniqueId);}}

如果你不想看上面的文章,可以直接跳过到下面

2. 需要用到com.microsoft.ews-java-api

microsoft.exchange.WEBservices

导入ews-java-api-2.0.jar, 在pom.xml文件里加入以下代码:

2.1 Maven中添加

<dependency>  <groupId>com.microsoft.ews-java-api</groupId>  <artifactId>ews-java-api</artifactId>  <version>2.0</version></dependency>

2.2 gradle中添加

Gradledependencies {    compile 'com.microsoft.ews-java-api:ews-java-api:2.0'}

3. 完整代码:新建一个MailUtil.java类:

package com.spacex.util;import microsoft.exchange.webservices.data.core.ExchangeService;import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;import microsoft.exchange.webservices.data.core.service.item.EmailMessage;import microsoft.exchange.webservices.data.credential.ExchangeCredentials;import microsoft.exchange.webservices.data.credential.WebCredentials;import microsoft.exchange.webservices.data.property.complex.MessageBody;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.net.URI;public class MailUtil {    private static Logger logger = LoggerFactory.getLogger(MailUtil.class);        public static boolean sendEmail() {        Boolean flag = false;        try {            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); //新建server版本            ExchangeCredentials credentials = new WebCredentials("vino", "abcd123", "spacex"); //用户名,密码,域名            service.setCredentials(credentials);            service.setUrl(new URI("https://outlook.spacex.com/EWS/Exchange.asmx")); //outlook.spacex.com 改为自己的邮箱服务器地址            EmailMessage msg = new EmailMessage(service);            msg.setSubject("This is a test!"); //主题            msg.setBody(MessageBody.getMessageBodyFromText("this is a test! pls ignore it!")); //内容            msg.getToRecipients().add("126@126.com"); //收件人//        msg.getCcRecipients().add("test2@test.com"); //抄送人//        msg.getAttachments().addFileAttachment("D:\\Downloads\\EWSJavaAPI_1.2\\EWSJavaAPI_1.2\\Getting started with EWS Java API.RTF"); //附件            msg.send(); //发送            flag = true;        } catch (Exception e) {            e.printStackTrace();        }        return flag;    }    public static void main(String[] args) {        sendEmail();    }}

以上为全部代码,有任何问题可以联系我!

请参照:

https://stackoverflow.com/questions/1713116/javamail-exchange-authentication/41529188

https://github.com/OfficeDev/ews-java-api/wiki/Getting-Started-Guide

来源地址:https://blog.csdn.net/superdangbo/article/details/128154145

--结束END--

本文标题: Java实战-用Java mail实现Exchange发邮件给你喜欢的人

本文链接: https://www.lsjlt.com/news/389273.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实战-用Java mail实现Exchange发邮件给你喜欢的人
    目录 1. 官方指导文章2. 需要用到com.microsoft.ews-java-api2.1 maven中添加2.2 gradle中添加 3. 完整代码:新建一个MailUtil.ja...
    99+
    2023-09-01
    java 开发语言 mail Exchange 后端
  • Java 基于Jakarta Mail实现收发邮件
    目录依赖发送邮件接收邮件完Jakarta Mail API提供了一个独立于平台和协议的框架来构建邮件,完成邮件接收与发送功能。它也包含在Java EE平台中,也可以和Java SE平...
    99+
    2024-04-02
  • Java怎么基于Jakarta Mail实现收发邮件
    小编给大家分享一下Java怎么基于Jakarta Mail实现收发邮件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java基本数据类型有哪些Java的基本数据类...
    99+
    2023-06-14
  • 怎么使用Java自带的mail API实现邮件发送功能
    本篇内容主要讲解“怎么使用Java自带的mail API实现邮件发送功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Java自带的mail API实现邮件发送功能”...
    99+
    2023-07-05
  • 使用Java自带的mail API实现邮件发送功能全过程
    目录需求:以下代码即可发送邮件,以qq邮箱为例证书生成步骤:总结需求: 邮件发送 使用jdk源生API——java.mail实现发邮件功能 (当然也有第三方工...
    99+
    2023-05-14
    java mail api java 发送邮件 java实现发送邮件
  • 如何使用Python实现给喜欢的主播自动发弹幕
    这篇文章主要为大家展示了“如何使用Python实现给喜欢的主播自动发弹幕”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Python实现给喜欢的主播自动发弹幕”这篇文章吧。前言发弹幕只是其...
    99+
    2023-06-22
  • Java实战之邮件的撰写和发送
    目录1.xml文件2.Java文件3.步骤3.1.xml文件的建立过程3.2.Java文件的建立4.密钥5.后记1.xml文件 <?xml version="1.0...
    99+
    2024-04-02
  • Java实战之基于swing的QQ邮件收发功能实现
    目录一、电子邮件详解二、邮件发送三、邮件接收四、导包一、电子邮件详解 假设自己的电子邮件是me@163.com,对方的邮件是you@163.com 我们编写好文件填写好对...
    99+
    2024-04-02
  • java发送邮件的具体实现
    首先是继承自javax.mail.Authenticator的一个具体类。getPasswordAuthentication()方法也就是构建一个PasswordAuthentica...
    99+
    2022-11-15
    java 发送邮件
  • 使用php的mail()函数实现发送邮件功能
     利用PHP的mail函数发送邮件    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件    ...
    99+
    2024-04-02
  • 如何使用php的mail()函数实现发送邮件功能
    小编给大家分享一下如何使用php的mail()函数实现发送邮件功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 利用PHP的mail函数发送邮件   mail()函数的作用:连接到邮件服务器...
    99+
    2023-06-15
  • Java实现简单的邮件发送功能
    本文实例为大家分享了Java实现简单的邮件发送的具体代码,供大家参考,具体内容如下 要注意只有开启了POP3/SMTP才能收发邮件,首先要开启此功能 ** qq邮箱的开启方式** 设...
    99+
    2024-04-02
  • java实战案例之用户注册并发送邮件激活/发送邮件验证码
    目录 一、前期准备 1、准备两个邮箱账号(一个发邮件,一个收邮件)1.1)登录需要发送邮件的QQ邮箱,找到设置项1.3)生成授权码二、项目1、准备用户数据表2、i...
    99+
    2024-04-02
  • Java实现批量发送带附件的邮件代码
    目录前言实体类(注意注释)实现类 方法中调用,详情如下:总结前言        新功能上线时要经常发包到测试或生产服务器进行模块部署...
    99+
    2024-04-02
  • Java如何实现带附件的邮件发送功能
    这篇文章主要讲解了Java如何实现带附件的邮件发送功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。需要导入mail.jar、activation.jar这两个邮件发送的jar包,可在网上搜索并下载需要设置相关...
    99+
    2023-05-31
    java ava
  • Java怎么实现批量发送带附件的邮件
    这篇文章主要讲解了“Java怎么实现批量发送带附件的邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现批量发送带附件的邮件”吧!实体类(注意注释)代码详情如下:package...
    99+
    2023-06-22
  • 基于Java实现简单的邮件群发功能
    目录pom文件引入第三方依赖java代码如下运行测试pom文件引入第三方依赖 <dependency> <groupId>javax.mail<...
    99+
    2024-04-02
  • 使用JAVA实现邮件发送功能的图文教程
    目录一、准备工作1.1 登录网页QQ邮箱,点击页面顶部设置按钮。1.2 点击后会打开邮箱设置页面,如下所示,点击第二栏账户。1.3 点击后往下拉,直到有如下页面选项。1.4 验证完成...
    99+
    2024-04-02
  • springboot(java)使用javamail实现邮件的接收、转发、发送、清除
    前言 最近在弄邮件相关的功能,被搞的头大,很多找的方法根本不知道该怎么往下走,就目前为止, 经过各种的碰壁和失败,就整理出来如何使用javamail实现邮件的接收、转发、发送、清除 不单单是分享,也为...
    99+
    2023-09-24
    java spring boot 服务器
  • 用java给文件加密的简单实现
    思路:文件加密,简单来说就是把文件读取出来,把读取出来的字节码数组进行遍历,把每一个码值和一个秘钥(随便一个数)进行异或运算,将运算后的结果全部写入到文件里。因为文件的码值全都做了改变,文件自然就无法打开了,这是加密过程。解密过程就是再执行...
    99+
    2023-12-23
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作