Показать сообщение отдельно
Старый 22.04.2010, 10:29   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от fed Посмотреть сообщение
почта в аксапте отправляется с помощью CDO (Collaborative Data Objects). Соответственно чтобы почта работала, на клиенте должен быть установлен почтовый клиент, поддерживающий CDO (Outlook Express и Outlook - подойдут).
Во-первых, не будет преувеличением сказать, что как минимум один клиент, поддерживающий CDO, а именно Outlook Express всегда установлен что на клиенте, что на сервере. Во-вторых, насколько я помню свои ранние эксперименты, Ms Office Outlook не работает, если на машине не установлен Outlook Express (т.е. если последний снести). В-третьих, если с помощью того же Process Monitor проследить отправку почты через CDO, то можно увидеть, что вслед за cdosys.dll в адресное пространство клиента загружается msoert2.dll (Microsoft Outlook Express RT Lib), но, насколько я могу судить, происходит это из-за цепочки зависимостей между cdosys.dll и msoert2.dll: cdosys.dll статически импортирует функции из inetcomm.dll (Microsoft Internet Messaging API), а та - из msoert2.dll, так что без последней загрузить библиотеку cdosys.dll вообще не удастся.
Цитата:
Сообщение от fed Посмотреть сообщение
Но есть одна тонкость: Если вы используете один из Outlook'ов, то надо на том AOSе, на котором у вас пакетный сервер крутиться, войти в систему под тем пользователем под которым AOSовский сервис запущен и отконфигурировать outlook.
Очень спорное утверждение, я лично пока не нашел подтверждения этой необходимости.
Цитата:
Сообщение от fed Посмотреть сообщение
Дело в том что во первых CDO путается запустить почтовый клиент по-умолчанию, во вторых при запуске почтового клиента, он проверяет наличие дефолтной конфигурации (профиль в CDOшной терминологии). И хотя в дальнейшем, при отправке почты, реально процентов 90 этой конфигурации переопределяется параметрами из Аксаптовских настроек почты, но все равно настроить и сконфигурировать клиента нужно (поскольку CDO при запуске проверяет что ему есть где взять параметры, если ему их приложение в явном виде не укажет).
Я эксперимента ради отправил (успешно ) почту через CDO с сервера w2k3, на котором из CDO-совместимых почтовых клиентов установлен лишь Outlook Express, причем не настроенный, и проследил с помощью Process Monitor, что при этом происходит. Так вот, из ветки HKCU при этом успешными оказались лишь обращения к ветвям:
  • HKCU\Control Panel\Desktop
  • HKCU\Identities
  • HKCU\Software\Classes
  • HKCU\Software\Microsoft\Internet Account Manager
  • HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN
  • HKCU\Software\Microsoft\Outlook Express (была попытка считать отсюда одно-единственное значение "Disable RFC2646 Wrapping", но оно оказалось не установленным)
Так что, как минимум, в моем случае успешная отправка почты через CDO оказалась возможной без какой бы то ни было предварительной настройки профилей почтового клиента, более того, попыток обращения к этим профилям в моем случае выявлено не было. На всякий случай: ветка HKCU\Identities не имеет непосредственного отношения к настройкам почты, хотя в ее подветках встречаются кое-какие настройки Outlook Express; в моем случае в ходе отправки почты обращения к этим настройкам OE не было.
Добавлю и свои 5 копеек на счет отправки почты: в зависимости от настроек отправки может быть важно, к какому почтовому домену относятся адреса получаетлей. Дело в том, что если вы отправляете через корпоративный или любой другой нормально настроенный сервер сообщения адресатам в тех же почтовых доменах (а их может быть больше одного, и они могут не совпадать с названием домена, настроенного в AD), которые "держит" сам этот сервер, то достаточно лишь знать его адрес/порт и SMTP-адреса получателей. Если же вы пытаетесь отправить сообщения адресатам, за почтовые домены которых SMTP-сервер не отвечает, так что ему придется пересылать почту дальше (выступить в качестве relay'я), то бывает необходимо перед отправкой пройти аутентификацию на SMTP-сервере, если только по каким-то причинам он не рабоает как открытый relay. Здравомыслящие администраторы настраивают почтовые сервера так, чтобы они не принимали почту, предназначенную для других почтовых доменов, от неаутентифицированных отправителей, поэтому в настройках отправки почты помимо адреса почтового сервера может потребоваться указать параметры для аутентификации на нем.