| User | Post |
|
07:00 Январь 26, 2010
| Kotonen
| | Tyumen | |
| Member | posts 14 |
|
|
Возникла потребность чтобы все входящие и исходящие письма с определенного почтового сервера (для примера пусть будет @yandex.ru) падали в определенный ящик. Но в правилах транспорта можно указать только явный почтовый адрес который будет обрабатываться. Как же быть? заводить все наверняка известные адреса с него на АД и тогда уже их использовать в Правиле?
|
|
|
15:25 Январь 26, 2010
| Pavel Nagaev
| | Novorossiysk | |
| Admin
| posts 1386 |
|
|
Настройте правило, когда отправитель или получатель содержат строку «yandex»
|
|
|
15:34 Январь 26, 2010
| Kotonen
| | Tyumen | |
| Member | posts 14 |
|
|
Хорошо, предположим я напишу, но как ему сказать что есть получатель/отправитель, который содержит «yandex»? Он же берет эти параметры из сервака, то есть то, что создано моими ручками.
|
|
|
15:43 Январь 26, 2010
| Pavel Nagaev
| | Novorossiysk | |
| Admin
| posts 1386 |
|
|
Не пойму что Вы хотите. Давайте на конкретном примере.
|
|
|
15:49 Январь 26, 2010
| Kotonen
| | Tyumen | |
| Member | posts 14 |
|
|
Post edited 06:51 – January 27, 2010 by Kotonen
я хочу чтобы все письма с яндекса (и входящие и исходящие) падали в один ящик
Но проблема в том что при создании мастером правила для этого, в первом шаге нвозмодно выбрать или точнее определить эту цель. Там есть возможность указания только конкретного почтового адреса, а не в целом нужного для мне яндекса.
|
|
|
10:55 Январь 27, 2010
| Tvarogok
| | | |
| Member | posts 18 |
|
|
На первом шаге выберите When the message header contains text patterns и укажите From и @yandex.ru
На втором шаге Redirect messages to addresses
|
|
|
11:15 Январь 27, 2010
| Kotonen
| | Tyumen | |
| Member | posts 14 |
|
|
to Tvarogok
Это только половина дела, то есть случай когда письма приходят с яндекса…
а когда пишут на яндекс?
|
|
|
16:49 Январь 27, 2010
| Pavel Nagaev
| | Novorossiysk | |
| Admin
| posts 1386 |
|
|
Это не поддерживаемое решение.
http://blogs.msdn.com/akashb/a…..erver.aspx
http://gsexdev.blogspot.com/20…..chive.html
http://www.exchangeinbox.com/a…..aspx?i=139
или
Wrote a dll that does this (and by write, I mean copied other peoples code, talked to a few people, and got it to do what I needed). Here is the C# code if anyone runs into this issue themselves.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Text.RegularExpressions;
using Microsoft.Exchange.Data.Mime;
using Microsoft.Exchange.Data.Transport;
using Microsoft.Exchange.Data.Transport.Email;
using Microsoft.Exchange.Data.Transport.Routing;
namespace Samples.Agents.MyRoutingAgent
{
public class MyRoutingAgentFactory : RoutingAgentFactory
{
public override RoutingAgent CreateAgent(SmtpServer server)
{
return new MyRoutingAgent();
}
}
public class MyRoutingAgent : RoutingAgent
{
public MyRoutingAgent()
{
base.OnSubmittedMessage += new SubmittedMessageEventHandler(MyRoutingAgent_OnSubmittedMessage);
}
void MyRoutingAgent_OnSubmittedMessage(SubmittedMessageEventSource source, QueuedMessageEventArgs e)
{
Regex regex_company_fax = new Regex("(\d+@)company.fax", RegexOptions.IgnoreCase);
//Alter the P1 headers.The P1 address is used for routing.
for (int intCounter = e.MailItem.Recipients.Count - 1; intCounter >= 0; intCounter--)
{
if (e.MailItem.Recipients[intCounter].Address.IsValid)
{
# region email_header_p1_block
//Save the whole email address and local part of the address to strings
string strEmailAddress = e.MailItem.Recipients[intCounter].Address.LocalPart + "@" + e.MailItem.Recipients[intCounter].Address.DomainPart;
string strLocalPart = e.MailItem.Recipients[intCounter].Address.LocalPart;
//Match using the created regex agains the saved email address string
Match match_company_fax = regex_company_fax.Match(strEmailAddress);
//If the match is successful, move on, otherwise exit
if (match_company_fax.Success)
{
//The match is successful, remove the old address
e.MailItem.Recipients.Remove(e.MailItem.Recipients[intCounter]);
e.MailItem.Recipients.Add(new RoutingAddress(strLocalPart + "@newcompany.com"));
#endregion
}
}
}
# region email_header_p2_block
//Alter the P2 headers so that the mail displays the correct recipient display Name
EmailRecipientCollection erToRecipientCollection;
erToRecipientCollection = e.MailItem.Message.To;
foreach (EmailRecipient rec in erToRecipientCollection)
{
Match match_company_fax = regex_company_fax.Match(rec.SmtpAddress);
if (match_company_fax.Success)
{
string xname = regex_company_fax.Replace(rec.SmtpAddress, "$1myfax.com");
rec.DisplayName = xname;
rec.SmtpAddress = xname;
}
}
#end region
}
}
}
|
|
|
|
16:34 Февраль 2, 2010
| Victor Ivanidze
| | | |
| Member | posts 7 |
|
|
Добрый день.
To Pavel Nagaev:
А что именно делает приведенный выше код, Павел? Вы его тестировали?
To Kotonen:
>я хочу чтобы все письма с яндекса (и входящие и исходящие) падали в один ящик
Если имеется в виду, «все письма от *@yandex.ru локальным пользователям и от локальных пользователей адресатам *@yandex.ru должны копироваться в определенный почтовый ящик», то попробуйте использовать избирательное журналирование. См. http://technet.microsoft.com/e…..px?pr=blog
Удачи,
Виктор
|
|
|
16:53 Февраль 2, 2010
| Pavel Nagaev
| | Novorossiysk | |
| Admin
| posts 1386 |
|
|
Все что хочет сделать человек — делается транспортными правилами, объяснить чего у него не получается он не может. Что делают правила похоже тоже не понимает.
Я привел ссылки и кусок кода, как пример того, что если встроенные правила не устраивают – пишите свои. И уж конечно я не ставил перед собой целью предоставить решение, моя задача – направить человека.
А почему это Вы в этот раз не прорекламировали продукты от MAPIlabs? Что то случилось?
В Exchange кстати очень коряво сделана реализация регулярных выражений в транспортных правилах и в E2010 это осталось. MAPILabs еще транспортный агент не написала? Было бы полезно.
|
|
|
17:10 Февраль 2, 2010
| Victor Ivanidze
| | | |
| Member | posts 7 |
|
|
Post edited 17:15 – February 2, 2010 by Victor Ivanidze
Павел, вы путаете. MAPILabs это очень достойная компания из Калининграда (Кенигсберга), к которой я не имею никакого отношения. Моя называется IvaSoft.
То, чего хочет топикстартер, не может, к сожалению, быть сделано известными мне продуктами, в том числе и моими. А если бы могло, то вы бы убрали ссылку (как в случае с InstantWelcome) . Ну что ж, блог ваш, хозяин – барин.
И все же любопытно, парень из Experts Exchange c ником pbest93 (и нулевым рейтингом) разрешил вам копировать его код? Или это вы сами и есть pbest93?
Всего хорошего,
Виктор
|
|