VirtualIreland.ru - Виртуальная Ирландия
Вернуться   VirtualIreland.ru - Виртуальная Ирландия > Живем в Ирландии > IT и Связь

IT и Связь Обсуждение "айтишных" вопросов и средств связи

Ответ
 
Опции темы Опции просмотра
Старый 12.05.2008, 16:42   #1
Активный Участник
 
Аватар для vertex
 
Сообщений: 437
Благодарности: 152 в 75 сообщениях Поиск благодарностей vertex
По умолчанию Как отправить письмо из ASP.NET сервиса?

Подскажите если кто знает...

Есть два компьютера на сетке, на одном IIS с Веб-сервисами, а на другом MS-Exchange.

Понадобилось одному сервису отправлять письма через Exchange компьютер, и никак не получается заставить это работать...

Веб-Сервис написан на C#:

Код:
            MailMessage Msg = new MailMessage();
            Msg.To.Add("recepient@domain.com");
            Msg.From = new MailAddress("sender@domain.com");
            Msg.Subject = "Test Email";
            Msg.Body = "Hi";
            SmtpClient Client = new SmtpClient("server.extension.ie", 25);
            Client.EnableSsl = false;
            Client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
           
            try
            {
                Client.Send(Msg);
            }
            catch (System.Exception)
            {
                return false;
            }
Код всегда возвращает true, т.е. почта уходит замечательно, но никуда не приходит. Впечатление такое, что связь между IIS и Exchange не работает.

Кто знает куда нужно посмотреть чтобы понять в чем проблема?

vertex добавил 12.05.2008 в 17:46
Наверное более точный вопрос был-бы: Как настроить связку IIS<->Exchange установленных на двух разных компьютерах внутри одного домена?

Последний раз редактировалось vertex, 12.05.2008 в 16:46. Причина: Добавлено сообщение
vertex вне форума   Ответить с цитированием

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 16.05.2008, 16:38   #2
Заслуженный Участник
 
Сообщений: 4,793
Благодарности: 2,845 в 1,323 сообщениях Поиск благодарностей nikulina
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

у меня ощущение, что MailMessage() использует smtp, потому рекомендую проверить, что у эксченжда есть и работает smtp-коннектор. И телнет на 25 порт работает. Но это предположение, впрочем - без хоть каких-то логов чего-то понять сложно

Последний раз редактировалось nikulina, 16.05.2008 в 21:27.
nikulina вне форума   Ответить с цитированием
Старый 16.05.2008, 20:39   #3
Активный Участник
 
Откуда: Russia-Germany(NRW)-Irland(Cork)-Germany(NRW)
Сообщений: 268
Благодарности: 57 в 41 сообщениях Поиск благодарностей Loopback
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

Цитата:
Сообщение от vertex Посмотреть сообщение
Подскажите если кто знает...

Есть два компьютера на сетке, на одном IIS с Веб-сервисами, а на другом MS-Exchange.

Понадобилось одному сервису отправлять письма через Exchange компьютер, и никак не получается заставить это работать...

Веб-Сервис написан на C#:

Код:
            MailMessage Msg = new MailMessage();
            Msg.To.Add("recepient@domain.com");
            Msg.From = new MailAddress("sender@domain.com");
            Msg.Subject = "Test Email";
            Msg.Body = "Hi";
            SmtpClient Client = new SmtpClient("server.extension.ie", 25);
            Client.EnableSsl = false;
            Client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
           
            try
            {
                Client.Send(Msg);
            }
            catch (System.Exception)
            {
                return false;
            }
Код всегда возвращает true, т.е. почта уходит замечательно, но никуда не приходит. Впечатление такое, что связь между IIS и Exchange не работает.

Кто знает куда нужно посмотреть чтобы понять в чем проблема?

vertex добавил 12.05.2008 в 17:46
Наверное более точный вопрос был-бы: Как настроить связку IIS<->Exchange установленных на двух разных компьютерах внутри одного домена?
ну, для того, чтобы проверить идет что-нибудь вообще на порт 25 с клиента, можно воспользоваться банальным этереалом/вайршерком/любимым пакетснифером...
Loopback вне форума   Ответить с цитированием
Старый 17.05.2008, 10:40   #4
Активный Участник
 
Аватар для vertex
 
Сообщений: 437
Благодарности: 152 в 75 сообщениях Поиск благодарностей vertex
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

Спасибо за советы. В конце выяснилось, что причиной тому что ничего не отправляется в том что два компьютера сидят на двух разных доменах, тот что с IIS сидит на DMZ, а Exchange сидит за firewall, и поэтому соединение между ними не возможно по причине безопасности.

Имеется еще третий компьютер на сетке, с SQL2005 сервером, который виден из DMZ, т.к. посчиталось что это достаточно безопасно. А также имеется двусторонняя связь межде сервером с SQL2005 и Exchange сервером.

Поэтому теперь вопрос - можно-ли как-нибудь ASP.NET-клиенту из DMZ использовать SQL2005 чтобы отправить почту через Exchange сервер? т.е. нет-ли, например в Exchange какой-нидь службы автоматического вытягивания почты для отправки из SQL2005 (типа подобия Biztalk закачек)? Или может еще какие идеи у кого имеются...
vertex вне форума   Ответить с цитированием
Старый 17.05.2008, 17:02   #5
Заслуженный Участник
 
Сообщений: 4,793
Благодарности: 2,845 в 1,323 сообщениях Поиск благодарностей nikulina
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

Если у вас по соображениям безопасности почта не должна ходить с той машины на эксчендж, то не надо ее туда посылать Или ковыряйте дыру для 25 порта с этой машины на эксчендж. Иначе будет криво.
Из кривых вариантов - smtp-прокси, пробрасывание 25 порта на эксчендж через машину с sql2005.
nikulina вне форума   Ответить с цитированием
Старый 17.05.2008, 19:20   #6
Активный Участник
 
Откуда: Russia-Germany(NRW)-Irland(Cork)-Germany(NRW)
Сообщений: 268
Благодарности: 57 в 41 сообщениях Поиск благодарностей Loopback
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

Цитата:
Сообщение от vertex Посмотреть сообщение
Поэтому теперь вопрос - можно-ли как-нибудь ASP.NET-клиенту из DMZ использовать SQL2005 чтобы отправить почту через Exchange сервер? т.е. нет-ли, например в Exchange какой-нидь службы автоматического вытягивания почты для отправки из SQL2005 (типа подобия Biztalk закачек)? Или может еще какие идеи у кого имеются...
smtp по определению не может ничего ниоткуда вытягивать. вытягивать может поп3 или имап. поп3 по определению небезопасен.
девушка сверху правильно сказала, что поставить смтп прокси на SQL2005 это не самый безопасный вариант.
если мне память не изменяет, то можно заставить экченч слушать другой/дополнительный порт, отличный от 25го на предмет почты. этот порт можно пробросить через фиревал на дмц прямо на экченч и сделать фильтер по айпи/юзеру/на вкус администратора, на предмет безопасности.
кстати, если Вы не имеете доступа на это безобразие, то по-любому, всякая дискуссия здесь бессмысленна, поскольку решение будет принимать минимум админ экченча а не мы с Вами.
Loopback вне форума   Ответить с цитированием
Старый 17.05.2008, 19:30   #7
Заслуженный Участник
 
Сообщений: 4,793
Благодарности: 2,845 в 1,323 сообщениях Поиск благодарностей nikulina
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

слегка оффтопик - smtp умеет вытягивать почту по команде ETRN, но насколько это умеет реализация smtp в эксчендже - вопрос большой и открытый

а чтобы pop3 был безопаснее, существует pop3s %)
nikulina вне форума   Ответить с цитированием
Старый 18.05.2008, 13:35   #8
Активный Участник
 
Откуда: Russia-Germany(NRW)-Irland(Cork)-Germany(NRW)
Сообщений: 268
Благодарности: 57 в 41 сообщениях Поиск благодарностей Loopback
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

Цитата:
Сообщение от nikulina Посмотреть сообщение
слегка оффтопик - smtp умеет вытягивать почту по команде ETRN, но насколько это умеет реализация smtp в эксчендже - вопрос большой и открытый

а чтобы pop3 был безопаснее, существует pop3s %)
ETRN это уже экстеншн. в стандарт не входит.
кстати
\\\
smtp умеет вытягивать почту по команде ETRN
\\\
кроме того, как пишут сами ребята в:
http://www.faqs.org/rfcs/rfc1985.html
"""
The TURN command was a valid attempt to address the problem of having
to start the processing for the mail queue on a remote machine.
However, the TURN command presents a large security loophole. As
there is no verification of the remote host name, the TURN command
could be used by a rogue system to download the mail for a site other
than itself.
"""
уметь -то он, может, и умеет, а будет ли? вопрос к администратору.
как, впрочем, и по-поводу всего остального... мы тут можем все, что угодно предполагать, а потом придет лесник и выгонит всех нас из избушки. я бы выгнал..
Loopback вне форума   Ответить с цитированием
Благодарностей: 2 от:
magician (19.05.2008), nikulina (18.05.2008)
Старый 18.05.2008, 21:55   #9
Заслуженный Участник
 
Сообщений: 4,793
Благодарности: 2,845 в 1,323 сообщениях Поиск благодарностей nikulina
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

о, действительно, спасибо
ну и да, про лесника согласна
__________________
"Продолжайте, продолжайте, я всегда зеваю, когда мне интересно" (с)
nikulina вне форума   Ответить с цитированием
Старый 23.05.2008, 10:43   #10
Активный Участник
 
Аватар для vertex
 
Сообщений: 437
Благодарности: 152 в 75 сообщениях Поиск благодарностей vertex
По умолчанию Re: Как отправить письмо из ASP.NET сервиса?

Еще раз спасибо за все комментарии...

К сожалению, в вопросах реализации программной части мне приходится опираться на имеющуюся инфраструктуру, т.к. администратор системы не хочет ничего менять чтобы подстраиваться под мою задачу, т.к. это не его проблемы

В общем пришлось мне из моего Web-сервиса чта на DMZ сидит кидать записи на SQL сервер, на котором я установил тригеры по добавлению для вызова моих Stored Procedures что я написал на C#. И уже эти Stored Procedures отправляют почту куда хотят.

Между прочим, если кому интересно, я сделал много попыток заставить встроенные SMTP службы SQL работать нормально с Exchange, но ничего из этого не получилось. Во-первых, эти службы не в состоянии отправлять сообщения с телом более 4000 байт (ограничитель типа nvarchar), а встроенные средства использования запросов внутренней обработки оказались до ужаса глючным и не работающим, вешают SQL сервер

Сейчас я бьюсь над последним моментом, это как заставить мои C# Stored Procedure еще кой-чего и в файл сбросить, т.е. как там security для этого настроить, но об этом я спросил в другой теме: http://www.virtualireland.ru/showthread.php?t=20812
vertex вне форума   Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать на сообщения
Вы не можете добавлять вложения
Вы не можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщ.
незнаю куда отправить kostik Автотранспорт 2 08.03.2008 21:16
посылку отправить?.. Beara Общие темы 2 18.12.2007 15:44
Как отправить вещи домой PERTH Общие темы 3 03.08.2007 11:31
Аутсорсинг кастомер сервиса alz Само приползло 1 18.07.2007 20:34
отправить факс Elena Общие темы 3 17.06.2006 23:06


Часовой пояс GMT, времени сейчас: 02:00.


vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd., Русификация: zCarot, Vovan & Co
©2003-2025 VirtualIreland.ru - Виртуальная Ирландия