我正在努力同步约会,从我们的应用程序到Exchange的任务和返回。
仅当 SendInvitationsMode 枚举作为SendInvitationsMode.SendOnlyToAll
或SendInvitationsMode. SendToNone
传递时,EWS才会显示资源(必需的与会者,可选与会者)日历的约会。
如果我们将 SendInvitationsMode 枚举设置为 Appointment meeting1 = new Appointment(service);
ImpersonatedUserId impersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "organizer email");
service.ImpersonatedUserId = impersonatedUserId;
meeting1.Subject = "Checking responses";
meeting1.Body = "The purpose of this meeting is to check status.";
meeting1.Start = new DateTime(2017, 4,14, 12, 0, 0);
meeting1.End = meeting1.Start.AddHours(2);
meeting1.Location = "Conf Room";
Attendee attendee = new Attendee();
attendee.Address = "attendee email address";
attendee.Name = "name";
meeting1.RequiredAttendees.Add(attendee);
meeting1.Save(SendInvitationsMode.SendToNone);
,那么它仅在管理器日历上保存约会。
示例代码
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
'email:email',
'vat_code',
'code',
'company',
'country',
'city',
'address',
'phone',
'name',
['class' => 'yii\grid\ActionColumn',
'template' => '{update} {delete}',
'buttons' => ['update' => function ($url, $model) {
$url = Yii::$app->urlManager->createUrl(['user/update', 'id' => substr($url, strpos($url, 'id=')+3, strlen($url)), 'type' => substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], 'user/')+5, 8)]);
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
'title' => Yii::t('app', 'Update'),]);
},
'delete' => function ($url, $type) {
$url = Yii::$app->urlManager->createUrl(['user/delete', 'id' => substr($url, strpos($url, 'id=')+3, strlen($url)), 'type' => substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], 'user/')+5, 8)]);
return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [
'title' => Yii::t('app', 'Delete'),]);
}],
],
],
]); ?>
有没有办法插入约会,所有与会者都可以在各自的日历中看到没有电子邮件通知?发送过去约会的通知是没有意义的。
答案 0 :(得分:0)
您使用的是客户端API,因此您使用的API调用只能访问管理器的邮箱。如果您想在参加者邮箱上做一些事情(您还需要了解与会者可以是内部或外部,因此您在此处有一般逻辑失败),您需要更改您的安全上下文,例如模仿组织者以模拟特定与会者然后接受该与会者和您想要更新的每个与会者的会议。
您的其他逻辑失败是您需要考虑与会者是否已首先接受或拒绝了会议响应。与会者为每个会议维护自己的Exchange Store项目,并由客户端维护状态/更新,而不是服务器。唯一的例外是房间邮箱,其中启用了自动接受,但即使这样,也有邮箱助理管理邀请/更新/取消的处理。