标签: exchange-server

是否有任何API将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

我正在尝试将Java Web应用程序与Microsoft Exchange服务器集成,以实现双向日历(即任务)同步.是否有用于此集成的Java开源/商业API?

谢谢,Venkat

java outlook exchange-server

10
推荐指数
3
解决办法
3万
查看次数

如何使用ASP.NET中的Exchange Web服务下载未读电子邮件附件?

我正在使用Exchange Server 2007 SP3

我可以使用以下代码连接交换Web服务

ExchangeServiceBinding esb = new ExchangeServiceBinding();
esb.RequestServerVersionValue = new RequestServerVersion();
esb.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2007_SP1;
esb.Credentials = new NetworkCredential("<user_id>", "<password>", "<domain>");
esb.Url = @"https://<server_fqdn>/ews/Exchange.asmx";
Run Code Online (Sandbox Code Playgroud)

我正在寻找下载未读附件的代码.

请你帮助我好吗?

c# asp.net outlook exchange-server exchangewebservices

10
推荐指数
1
解决办法
2120
查看次数

Java中的Diffie-Hellman密钥交换

我正在开发一个Java的个人项目,涉及通过不安全的渠道发送敏感数据.我需要知道如何使用其库在Java中实现Diffie Hellman密钥交换(DHKE).我知道关于它的所有加密理论所以不需要详细说明,我只需要一个非常基本的实现,所以我可以让2个程序共享一个密钥.我从java2s.com获得了示例,但它并不完整:

import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;

import javax.crypto.spec.DHParameterSpec;
import javax.crypto.spec.DHPublicKeySpec;

public class Main {
  public final static int pValue = 47;

  public final static int gValue = 71;

  public final static int XaValue = 9;

  public final static int XbValue = 14;

  public static void main(String[] args) throws Exception {
    BigInteger p = new BigInteger(Integer.toString(pValue));
    BigInteger g = new BigInteger(Integer.toString(gValue));
    BigInteger Xa = new BigInteger(Integer.toString(XaValue));
    BigInteger Xb = new BigInteger(Integer.toString(XbValue));

    int bitLength = 512; …
Run Code Online (Sandbox Code Playgroud)

java security exchange-server key

10
推荐指数
2
解决办法
3万
查看次数

c#以编程方式从Exchange服务器读取电子邮件

当您在网上搜索时,您会找到"如何以编程方式阅读电子邮件"的简单答案...... Al网站正在解释大部分相同的内容,例如此页面. http://omegacoder.com/?p=454

// depends from Exchange server version      
        service.Credentials = new NetworkCredential("MDR", "password", "zzz");
        service.AutodiscoverUrl("mdr@zzz.be");
        object o = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
        FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
        foreach (Item item in findResults.Items)
        {
            Console.WriteLine(item.Subject);
        }
Run Code Online (Sandbox Code Playgroud)

它在执行autodiscoverURL行时失败.错误显示"无法找到自动发现服务".

所以我进一步搜索了这个网站来自微软https://www.testexchangeconnectivity.com/#&&/wEXAQUBcwUBME93h2+JjI0+MV2gTqcRL0g43z9m这里你可以测试你的邮件服务器....当我传递参数时,我得到以下错误. ...

但我还是不明白问题是什么?我是否需要向DNS添加记录?有人可以帮忙吗?

Attempting to test potential Autodiscover URL https://autodiscover.zzz.be/AutoDiscover/AutoDiscover.xml
 Testing of this potential Autodiscover URL failed.
 Test Steps
 Attempting to resolve the host name autodiscover.ncb.be in DNS.
 The host name resolved successfully.
 Additional Details
 IP addresses returned: 213.246.192.205

Testing TCP …
Run Code Online (Sandbox Code Playgroud)

c# exchange-server exchange-server-2007

9
推荐指数
1
解决办法
4万
查看次数

如何查询Active Directory对象的有效权限?

我正在尝试以编程方式确定当前用户是否对给定的Active Directory对象具有某些权限(特别是在这种情况下,我正在尝试确定用户是否具有另一个Exchange用户或通讯组列表对象的"代理发送"权限).

我已经想通了如何访问ntSecurityDescriptor使用ADSI属性:我可以在枚举的ACE IADsSecurityDescriptorDiscretionaryACL财产.但:

  • 如何根据该数据确定受托人是否明确允许或拒绝"发送为"许可?
  • 如果通过组成员资格间接授予权限,我该如何发现?我是否真的必须通过(递归)检查用户所属的所有组来自己解析有效权限?当然必须有一个API用于该任务......

FWIW,我使用ActiveDs.dll类型库在Delphi中编码(即本机Win32代码),因此特定于.NET的解决方案对我没有多大帮助,除非他们的源代码为我提供了如何在本机中执行相同操作的线索码.PowerShell也是如此.


在任何人开始之前:我已经知道了PR_EMS_AB_PUBLIC_DELEGATESPR_EMS_AB_PUBLIC_DELEGATES_BL_O扩展的MAPI属性.但是,这不是我追求的.这些属性引用"代表发送"-right(又名委托),而不是"发送为"权限,这是完全不同的事情.

permissions exchange-server adsi active-directory

9
推荐指数
1
解决办法
3465
查看次数

带有MS Exchange的JavaMail:服务器和客户端都不支持身份验证机制

我几天来一直试图从Grails应用程序发送邮件但没有成功.我正在使用:

  • grails 1.3.7
  • 邮件1.0插件
  • spring-security-core 1.2.6插件
  • tomcat 7.0.23

Specifficaly我正在尝试使用部署在Tomcat服务器上的应用程序发送邮件,该端口25没有身份验证,没有SSL.

我已经尝试从部署了应用程序的VMWare虚拟机发送带有telnet的消息并且它已经通过了.

这是我发送邮件的课程:

public boolean sendMessage(String to, String msgSubject, String msgText) 
{
    String host = "mail.mydomain.com";
    String username = "myuser@mydomain.com"; // your authsmtp username
    String password = "mypassword" // your authsmtp password
    String from = "myuser@mydomain.com";

    Properties props = System.getProperties();
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", username);
    props.put("mail.smtp.password", password);
    props.put("mail.smtp.port", "25"); // thish is the port recommended by authsmtp
    props.put("mail.smtp.auth", "false");

    Session session = Session.getDefaultInstance(props, null);
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));

    InternetAddress to_address …
Run Code Online (Sandbox Code Playgroud)

java authentication grails exchange-server jakarta-mail

9
推荐指数
2
解决办法
4万
查看次数

从AD邮箱导入电子邮件

我们有一个旧的遗留SQL 2000服务器(最后的农场) -我们一直无法摆脱这个服务器的,因为它使用xp_findnextmsg,xp_readmail等来监控邮箱(通过MAPI)和导入所有邮件到该地址到数据库.数据库包含存储"从","到","主题","正文","发送日期"等的简单表.

您可能知道,SQL 2005+中不再使用上述过程

此表格可从数十个内部系统中读取,例如,我们的服务台系统会自动选择发送到此邮箱的电子邮件并创建呼叫等.

我的问题是:在SQL 2008+中最简单/最现代的方式是什么?是编写.net二进制/服务的情况,它将使用smtp或其他东西连接到邮箱并将数据插入SQL或者有更简单的方法吗?(SSIS /第三方工具/预先存在的代码/项目?)

我想在开始写东西之前我会问 - 没有必要重新发明轮子.

PS:有问题的邮箱是Exchange 2010邮箱.

编辑:此功能暗示将在2008年和dbmail中重新推出:http://connect.microsoft.com/SQLServer/feedback/details/126167/xp-readmail-replacement-for-sql-2005 但它看起来像它未能实现!

编辑2:我刚刚在这里发现了一个不错的代码示例,它使用了交换2007+中的新Web服务:http://social.msdn.microsoft.com/forums/en-US/sqltools/thread/dd2b465b-b1d2- 4c0d-82ec-c36c6c482d5d - 正在进行实验(有没有人使用过SQL和Exchange Web服务?)

编辑3:全部完成!我敲了一个.net服务,它位于我们的Exchange服务器上并监视邮箱并将任何新邮件推送到SQL中.其他人有一个类似的问题,需要一些示例代码才能开始 - 这里有一些粗略的代码(从我的服务中删除 - 用基本的动态SQL替换参数化的SQL以便于阅读):(注意:你需要EWS API 1.1 DLL)

Imports Microsoft.Exchange.WebServices.Data

Dim ExchangeUrl As String = "https://DOMAIN.co.uk/ews/exchange.asmx"
Dim service As New ExchangeService(ExchangeVersion.Exchange2010_SP1)
service.Url = New Uri(ExchangeUrl)
service.Credentials = New WebCredentials("USER@DOMAIN.CO.UK", "PASSWORD")
Dim findResults As FindItemsResults(Of Item) = service.FindItems(WellKnownFolderName.Inbox, New ItemView(1000))
If findResults.Count > 0 Then
    service.LoadPropertiesForItems(findResults.Items, New PropertySet(BasePropertySet.FirstClassProperties))
End …
Run Code Online (Sandbox Code Playgroud)

vb.net sql-server exchange-server sql-server-2008

9
推荐指数
1
解决办法
4816
查看次数

通过ICalUid获得Exchange约会?

所以我用给定的ICalUid创建Exchange(2007)约会:

var app = new Appointment(svc);
app.ICalUid = id;
app.Subject = "Test Appointment";
app.Recurrence = new Recurrence.DailyPattern(DateTime.Now, 3);
app.RequiredAttendees.Add("mstum@example.com");
app.AllowNewTimeProposal = false;
app.Body = new MessageBody(BodyType.HTML, "This is a <b>Test!</b>");
app.Save();
Run Code Online (Sandbox Code Playgroud)

稍后,我想更新该约会,此时我需要通过ICalUid找到它.

但是,似乎没有办法做到这一点?我只能使用Appointment.BindExchange ID,这是我在更新时没有的(存储它非常不切实际)

我可以使用相同的ICalUid创建一个新的约会,它看起来像一个更新,但再次要求接受/拒绝,而不是只显示"无需更新".

有没有正确的方法呢?

.net exchange-server exchange-server-2007 exchangewebservices

9
推荐指数
2
解决办法
5706
查看次数

在Python中获取Exchange Distribution List的成员

使用exchangelib,您如何获得全球分发列表的成员列表?在包含的测试用例中,我了解如何在联系人的文件夹中创建和删除DL,但不引用全局DL.如果有必要,我愿意使用不同的Python库.

更新:这是我到目前为止所尝试的内容.使用此代码,我可以转储我的个人分发列表(和其他联系人)列表,包括成员.我认为我需要my_folder在某种全球范围内"指出" 以查看全球分发列表而不是我个人联系人中的列表.

from exchangelib import DELEGATE, Account, Credentials, Configuration

credentials = Credentials(username='domain\\account', password='passw0rd')
config = Configuration(server='mail.example.com', credentials=credentials)
account = Account(primary_smtp_address='foo@example.com', config=config,
              autodiscover=False, access_type=DELEGATE)
my_folder = account.contacts
all_items_without_caching = my_folder.all().iterator()
for item in all_items_without_caching:
    print(item)
Run Code Online (Sandbox Code Playgroud)

python exchange-server

9
推荐指数
1
解决办法
1372
查看次数

存档邮箱的图形 API 失败

我一直在使用 Microsoft Graph API 访问 Exchange Online (Office365) 就地存档。

它基本上是一个经过身份验证的 GET HTTPS 请求https://graph.microsoft.com/v1.0/users/user@company.onmicrosoft.com/mailFolders/ArchiveMsgFolderRoot,它曾经可以正常工作。

从本周(2020 年 4 月下旬)开始,针对相同资源(无变化)的相同请求开始失败,原因如下:

404响应: {'error': {'code': 'ErrorInvalidMailboxItemId', 'message': "Item Id doesn't belong to the current mailbox.", 'innerError': {'request-id': '4a339242-9821-42a9-9622-4b1f7cd2c162', 'date': '2020-04-24T10:01:35'}}}

其他邮箱(不是ArchiveMsgFolderRoot)继续正常工作,没有问题。只有就地存档会受到影响。

您现在如何从 Graph API 访问 In-places Archives?你能分享一个例子吗?

exchange-server exchangewebservices microsoft-graph-api

9
推荐指数
1
解决办法
486
查看次数