Этот блог посвящен MS Exchange, Outlook и проблемам, связанным с электронной почтой


1 + = семь


 
Current User: Guest
Please consider registering


Register? | Lost Your Password?

Search Forums:


 






Minimum search word length is 4 characters – Maximum search word length is 84 characters
Wildcard Usage:
*  matches any number of characters    %  matches exactly one character

Правила Транспорта

UserPost

07:00
Январь 26, 2010


Kotonen

Member

posts 14

 
1
0

Возникла потребность чтобы все входящие и исходящие письма с определенного почтового сервера (для примера пусть будет @yandex.ru) падали в определенный ящик. Но в правилах транспорта можно указать только явный почтовый адрес который будет обрабатываться. Как же быть? заводить все наверняка известные адреса с него на АД и тогда уже их использовать в Правиле?

15:25
Январь 26, 2010


Pavel Nagaev

Novorossiysk

Admin

posts 1594

 
2
0

Настройте правило, когда отправитель или получатель содержат строку "yandex"

Всего хорошего.

15:34
Январь 26, 2010


Kotonen

Member

posts 14

 
3
0

Хорошо, предположим я напишу, но как ему сказать что есть получатель/отправитель, который содержит «yandex»? Он же берет эти параметры из сервака, то есть то, что создано моими ручками.

15:43
Январь 26, 2010


Pavel Nagaev

Novorossiysk

Admin

posts 1594

 
4
0

Не пойму что Вы хотите. Давайте на конкретном примере.

Всего хорошего.

15:49
Январь 26, 2010


Kotonen

Member

posts 14

 
5
0

Post edited 03:51 – Январь 27, 2010 by Kotonen


я хочу чтобы все письма с яндекса (и входящие и исходящие) падали в один ящик

Но проблема в том что при создании мастером правила для этого, в первом шаге нвозмодно выбрать или точнее определить эту цель. Там есть возможность указания только конкретного почтового адреса, а не в целом нужного для мне яндекса.

10:55
Январь 27, 2010


Tvarogok

Member

posts 32

 
6
0

На первом шаге выберите When the message header contains text patterns и укажите From и @yandex.ru

На втором шаге Redirect messages to addresses

11:15
Январь 27, 2010


Kotonen

Member

posts 14

 
7
0

to Tvarogok

Это только половина дела, то есть случай когда письма приходят с яндекса…

а когда пишут на яндекс?

16:49
Январь 27, 2010


Pavel Nagaev

Novorossiysk

Admin

posts 1594

 
8
0

Это не поддерживаемое решение.

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 8

 
9
0

Добрый день.

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 1594

 
10
0

Все что хочет сделать человек — делается транспортными правилами, объяснить чего у него не получается он не может. Что делают правила похоже тоже не понимает.

Я привел ссылки и кусок кода, как пример того, что если встроенные правила не устраивают – пишите свои. И уж конечно я не ставил перед собой целью предоставить решение, моя задача – направить человека.

А почему это Вы в этот раз не прорекламировали  продукты от MAPIlabs?  Что то случилось?

В Exchange кстати очень коряво сделана реализация регулярных выражений в транспортных правилах и в E2010 это осталось. MAPILabs еще транспортный агент не написала? Было бы полезно.

Всего хорошего.

17:10
Февраль 2, 2010


Victor Ivanidze

Member

posts 8

 
11
0

Post edited 14:15 – Февраль 2, 2010 by Victor Ivanidze


Павел, вы путаете. MAPILabs это очень достойная компания из Калининграда (Кенигсберга), к которой я не имею никакого отношения. Моя называется IvaSoft.

То, чего хочет топикстартер, не может, к сожалению, быть сделано известными мне продуктами, в том числе и моими. А если бы могло, то вы бы убрали ссылку (как в случае с InstantWelcome) . Ну что ж, блог ваш, хозяин – барин.

И все же любопытно, парень из Experts Exchange c ником pbest93 (и нулевым рейтингом) разрешил вам копировать его код? Или это вы сами и есть pbest93?

Всего хорошего,

Виктор


Reply to Topic:
Правила Транспорта

Guest Name (Required):

Guest Email (Required):

bbCode Editor
Smileys
Confused Cool Cry Embarassed Frown Kiss Laugh Smile Surprised Wink Yell
Post New Reply

Guest URL (required)

Math Required!
What is the sum of:
12 + 10
   


About the ExchangeRUS – сайт о Microsoft Exchange Server и электронной почте Forum

Forum Timezone: UTC 3

Most Users Ever Online: 328

Currently Online:
12 Guests

Currently Browsing this Topic:
1 Guest

Forum Stats:

Groups: 3
Forums: 10
Topics: 1394
Posts: 5657

Membership:

There are 1544 Members
There have been 209 Guests

There are 2 Admins

Top Posters:

fron – 251
kkv – 143
Bloodwiser – 89
mrhron – 56
restless – 47
Dmitry Barsukov – 42

Administrators: Pavel Nagaev (1594 Posts), Oleg Krylov (337 Posts)



 













































Рейтинг блогов eXTReMe Tracker