标签: exchange-server

&符号是否为Exchange电子邮件地址签名有效字符?

我试图找出&符号"&"是否是Microsoft Exchange电子邮件地址的有效字符.我知道根据RFC它是有效的,但我认为交换有一个有效字符的子集.

例:

Tom&Jerry@warnerbrothers.com

email exchange-server

7
推荐指数
1
解决办法
2万
查看次数

将ASP.NET Intranet应用程序与Outlook日历集成的技术

我不能再忽视用户的操作了.他们想要一个任务调度系统,在某些时候我必须提供.我正在考虑制作自己的(不能很难),但是用户将拥有两个并排的任务管理系统,因为他们已经使用Outlook进行相同的操作.

在Outlook日历/任务集成方面,我发现了两种可能的方法:

1)使用JavaScript和自动化

我似乎记得在JavaScript中进行自动化是可能的.

优点:

  • 我以前做过自动化.

缺点:

  • 自动化太可怕了!
  • 一些持久性(Outlook实体)是客户端代码的责任,其余的是服务器端代码的责任.这感觉太可怕了.

  • IT部门可能存在的安全问题/ 阻塞.

2)使用一些.NET API直接与Exchange Server交互

Intranet使用单点登录,因此希望这会使安全问题更容易.

优点:

  • 所有持久性代码都是服务器端的.

缺点:

  • 我甚至不知道存在这样的API.

和往常一样,我喜欢站在巨人的肩膀上.任何曾经走过这条道路的人都可以给我一些指导吗?

.net asp.net outlook exchange-server ews-managed-api

7
推荐指数
1
解决办法
6361
查看次数

如何从Exchange Web服务(2010 SP1)发送HTML(多部分/替代)

当我尝试通过EWS发送带有内嵌图像(附件)的HTML消息时,这个问题就暴露出来了.但是我退回到最简单的形式,发现我甚至无法发送HTML消息.

我使用的是C#,.NET 4,EWS API 1.1,Exchange Server 2010 SP1.

这是我的代码的核心:

ExchangeConnection = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
ExchangeConnection.Credentials = new WebCredentials(Username, Password, Domain);
ExchangeConnection.Url = new Uri(ServiceURI);

string MailBody = @"<html><head></head><body>
    This is a <b>test</b> <strong>HTML</strong> <em>message</em>.<br><br>
    Did it work?</body></html>";

NewMessage = new EmailMessage(ExchangeConnection);
NewMessage.Subject = "Test HTML Message #001";
NewMessage.Body = MailBody;
NewMessage.Body.BodyType = BodyType.HTML;
NewMessage.ToRecipients.Add("tony@zierniemann.com");
NewMessage.Send();
Run Code Online (Sandbox Code Playgroud)

使用该代码,我收到一条消息,内容如下:

Subject: Test HTML Message #001
Thread-Topic: Test HTML Message #001
Thread-Index: Acuy3U6nqQTa4W4ZQu6ueHPb2nPDPg==
Date: Thu, 13 Jan 2011 04:49:48 +0000
Message-ID: <2FDB41070D0AC24DB5BC8B80751063630B74A5@xxxxx.com>
Accept-Language: en-US
Content-Language: en-US …
Run Code Online (Sandbox Code Playgroud)

exchange-server exchangewebservices ews-managed-api exchange-server-2010

7
推荐指数
1
解决办法
2万
查看次数

如何删除PowerShell中的重音?

我有一个脚本,可以在Microsoft Exchange Server和Active Directory中创建用户.因此,虽然通常用户的名字在西班牙有重音符号或ñ,但我想避免使用用户名,以免在旧系统中造成任何不兼容性.

那么,我怎么能像这样清理一个字符串呢?

$name = "Ramón"
Run Code Online (Sandbox Code Playgroud)

那样的?:

$name = "Ramon"
Run Code Online (Sandbox Code Playgroud)

powershell exchange-server active-directory

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

7
推荐指数
3
解决办法
5206
查看次数

C#MS Exchange将电子邮件移动到文件夹

补充:感谢用户@grapkulec,我正在使用

using Microsoft.Exchange.WebServices.Data;
Run Code Online (Sandbox Code Playgroud)

我正在尝试将电子邮件移动到我已在Outlook中创建的文件夹(使用MS Exchange).到目前为止,我已经能够将电子邮件移动到草稿或其他众所周知的文件夹名称,但没有成功将其移动到我创建的名为"示例"的文件夹中.

foreach (Item email in findResults.Items)
email.Move(WellKnownFolderName.Drafts);
Run Code Online (Sandbox Code Playgroud)

上面的代码有效; 但我不想使用众所周知的文件夹.而且,如果我尝试将代码更改为:

email.Move(Folder.(Example));
Run Code Online (Sandbox Code Playgroud)

要么

email.Move(Folder.["Example"]);
Run Code Online (Sandbox Code Playgroud)

它不移动(在两种情况下都会抛出错误).我已经找到了很多关于如何将电子邮件移动到MSDN,SO和一般C#上的文件夹的示例 - 但仅限于Outlook(草稿,垃圾邮件等)"知名"的文件夹,这些文件不适用于我创建的文件夹.

c# exchange-server email-integration

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

Exchange Web服务API:获取邮件附件

我使用EWS API 1.2访问Exchange Server上的邮箱.这只是工作正常,但有一件事我无法实现:获取邮件附件.

我写了以下几行:

class Program
{
    public static void Main(string[] args)
    {
        try {
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
            service.Credentials = new WebCredentials("login","password");
            service.AutodiscoverUrl("mail@domaine.fr");

            ItemView view = new ItemView(10);
            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));

            if (findResults != null && findResults.Items != null && findResults.Items.Count > 0)
                foreach (Item item in findResults.Items)
                {
                    if (item.Attachments != null)
                    {
                        IEnumerator<Attachment> e = item.Attachments.GetEnumerator();
                    }   
                    Console.WriteLine(item.Subject);
                }
            else
                Console.WriteLine("no items");
        } 
        catch (Exception e) {
            Console.WriteLine(e.Message);
        }
        Console.ReadLine();
    }
} …
Run Code Online (Sandbox Code Playgroud)

.net c# exchange-server

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

exchangelib - 自动发现协议中的所有步骤都失败了

我在python中使用exchangelib时遇到问题.我试试这个示例代码:

from exchangelib import DELEGATE, Account, Credentials

creds = Credentials(
    username='xxxx\\username', 
    password="mypassword"
)

account = Account(
    primary_smtp_address='surname.name@xxxx.fr',
    credentials=creds, 
    autodiscover=True, 
    access_type=DELEGATE
)

# Print first 10 inbox messages in reverse order
for item in account.inbox.all().order_by('-datetime_received')[:10]:
    print(item.subject, item.body, item.attachments)

Run Code Online (Sandbox Code Playgroud)

我尝试了不同的用户名但没有任何作用,我总是有相同的错误消息: AutoDiscoverFailed: All steps in the autodiscover protocol failed

顺便说一句,以防万一它可以提供帮助,我试图使用为C#编码的Exchange Web服务,它可以完美地使用这些信用卡,我可以发送邮件:

static void Main(string[] args)
{
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
    // The last parameter is the domain name
    service.Credentials = new WebCredentials("username", "password", "xxxx.lan");
    service.AutodiscoverUrl("surname.name@xxxx.fr", RedirectionUrlValidationCallback);
    EmailMessage email = new EmailMessage(service);
    email.ToRecipients.Add("surname.name@xxxx.fr"); …
Run Code Online (Sandbox Code Playgroud)

python exchange-server exchangewebservices office365 exchangelib

7
推荐指数
1
解决办法
5129
查看次数

Office 365会议室邮箱通过Microsoft Graph进行CalendarProcessing访问

使用房间和设备时,Exchange(在Office 365中,但在其他版本中)使用许多选项来处理事件中对这些资源的请求.

默认情况下,Exchange将在房间日历中创建事件时剥离主题,并将其替换为管理器名称.如果您然后尝试获取房间的日历(例如,对于会议室显示),您将只有组织者名称而不是每次会议的主题.

这在某些情况下可能是适当的,但在许多其他情况下,人们希望实际主题在该日历中显示.

为了实现这一目标,我所知道的唯一的选择是使用PowerShell的Set-CalendarProcessingcmdlet来改变DeleteSubject,AddOrganizerToSubject等等.

在SaaS环境中,这非常烦人,因为您需要Office 365管理员使用Powershell执行此操作,这可能不是完全简单的,或者您需要请求用户的登录名和密码并将其传递给Powershell,这会提高安全性问题,并且在许多情况下都不会起作用(2FA,SAML身份验证...).

有没有办法通过Microsoft Graph访问这些设置?

或者,如果无法通过Microsoft Graph获得,是否有办法使用Microsoft Graph oAuth令牌通过Linux Powershell执行此操作?我知道可以使用oAuth令牌,但尽管我付出了很多努力,但我还没有设法找到一种方法来执行常规的托管oAuth登录并使用为此目的而收到的令牌.

任何提示都欢迎!

编辑

澄清一下:我在SaaS场景中,我是SaaS提供商,所以我需要允许我的客户管理员轻松或自动更改这些设置,不要访问我自己的房间邮箱(我会使用PowerShell) .

powershell exchange-server office365 microsoft-graph

7
推荐指数
1
解决办法
461
查看次数

Graph API calls to OnPremise Exchange only works in Playground

Our setup is an on-premise Exchange Server which is accessible over the graph api. https://docs.microsoft.com/en-us/graph/hybrid-rest-support

(https://www.msxfaq.de/cloud/graph/graph_und_exchange_onprem.htm)

We run in the issue, that our token is only "partial" working. And a token created by "Graph-Playground" is fully working. But we can't find any difference.

  • When I use Graph-Playground or use the token generated by Graph-Playground => all requests are working
  • When I create a token (over my app registration) => only some requests are working

The token seems to be valid some …

exchange-server hybrid on-premises-instances microsoft-graph-api

7
推荐指数
1
解决办法
670
查看次数