Страница 1 из 1

Рассылка почты SMTP

Добавлено: 15 фев 2006, 19:31
vg
Подскажите, пожалуйста, ключевое решение - какое АПИ предпочтительнее:

Надо, чтобы приложение выполняло автоматическую рассылку по SMTP мессаг + аттачмент. Автоматически означает, что с некоторой "зашедуленностью" приложение будет просматривать некую DB RDBMS и выполнять рассылку:

1) желательно чтобы АПИ могло быть в дальнейшем использовано в севрисе (NT или .NET фраймворк 2.0). Хотя и не обязательно. Можно было б планировщиком запускать. Здесь, думаю, появляется вопрос аутинтификации с использованием почтового АПИ (если это сервис).

2) желательно, чтобы это было высокоуровневое АПИ. Я предложил шефу, что напишу на сокетах (конечно, это не очень мягко говоря высокоуровневое решение). Шеф, высказал сомнение, что нужно попытаться использовами почтовое АПИ. Я соглашаюсь и с его опытом и знаниями, да и сам так думаю, что луше (быстрее и надёжнее) использовать уже готовое.

SMAPI не получается применить. Наверное я что-то неправильно делаю.... Подскажите, плз.

Во первых, отключить дурацкий диалог "Внешняя программа пытается отправить от вашего имени почтовое сообщение. OK? Cancel?" получется только для OutLook Express на закладке параметров Security. Это никак ни эффект MS OutLook. Поэтому, получается, что там где будет стоять эта программа - там должен быть установлен почтовым клиентом "по умолчанию" OutLook Express. Это есть сильное навязывание пользователю, что и как у него должно установлено.

Во-вторых, даже для OutLook Express ( при спользовании SMAPI ) появляется второй, не менее дурацкий диалог, который показывает прогресс отсылки сообщения. Если АПИ неизбежно рождает всякие диалоги, и некому нажимать кнопки Ok/Cancel, то возникает опасение, что такое приложение можно будет использовать для автоматической рассылки.

Какое АПИ на ваш взгляд лучше использовать в таких задачах?

Спасибо.

Ред. Забыл сказать - платформа Виндовз

Добавлено: 15 фев 2006, 20:44
Yury
я для подобной цели использовал CDO

Добавлено: 15 фев 2006, 21:16
Ranger
1. Во-первых, платформа - дотнет? Тогда я бы попробовал через него:

http://forums.microsoft.com/msdn/showpo ... 1&siteid=1

2. Если не дотнет и только слать надо, то можно все руками написать:

http://www.codeproject.com/csharp/sendmailcsharp.asp

3. Если не хочешь руками и не хочешь дотнет, а хочешь Simple MAPI, то you're in for a ride :) Оно, это API, вроде и простое, как двери, но натрахаться с ним можно по самые ого-го. Been there.

Теперь по существу вопроса - насколько я помню, для работы с Simple MAPI сам Outlook Express не нужен - рудиментарная smapi32.dll (или как там ее по-батюшке? не помню) идет с суксем (aka Windoze) по-умолчанию. Не то с самим суксем, не то с браузером - помню, были какие-то вилы насчет совместимости SMAPI либ от M$ и от Нетшкафа. Какая-то мелкая багофича, подробностей уже не помню - зело давно было. Или не браузера, а мыльного клиента? Ничего не помню. Может, уже исправили. Впрочем, простые письмена эта DLL слать умеет и более чем. Аутглюк же при установке просто меняет ее на свою.

Насчет диалога - проверь внимательно. Зуб даю, там есть параметр "не показывать диалог". Если ты его выставляешь в 0, а Аутглюк на этот параметр кладет - тогда ничего сделать нельзя (All hail Bill Gates!). Впрочем, раньше, насколько я помню, всё замечательно работало. Прочекай.

В свое время, я написал весь из себя обьектно-ориентированный компонент на VC++ с ATL, который предоставлял все фичи Simple MAPI и довольно успешно справлялся со всеми вышеизложенными особенностями. Если поискать, могу и код найти.

Удачи :lol:

Добавлено: 15 фев 2006, 21:24
Ranger
Yury писал(а):я для подобной цели использовал CDO
Кстати, да! Когда я с этой петрушкой возился (это было примерно миллион лет до нашей эры), CDO поставлялся исключительно с M$ Outlook (не Экспресс!), а теперь (сос слов гугля) он вроде идет в обычной стандартной поставке Win2K и XP.

Подробности тут:

http://www.aspfaq.com/show.asp?id=2026

Но если тебе надо, чтобы твоя бодяга шла под WinMe с нифига (без Outlook) - этот фокус не получится.

Добавлено: 15 фев 2006, 21:29
CdR
Как все запущено.... Столько всего для простой отправки почты. :(
Нет, правда, я в шоке.

Добавлено: 15 фев 2006, 21:33
Yury
CdR писал(а):Как все запущено.... Столько всего для простой отправки почты. :(
Нет, правда, я в шоке.
ну нету в виндах сендмыла родного :(

Добавлено: 15 фев 2006, 21:39
CdR
Yury писал(а):ну нету в виндах сендмыла родного :(
Да собственно он и не нужен, если вопрос только об отсылке стоит. Есть много менее перегруженных фичами реализаций.
"автоматическую рассылку по SMTP мессаг + аттачмент" можно тупо на shell организовать за 5 минут. Это настолько базовая функциональность, которая просто MUST HAVE элементарно реализуемой.
Меня впечатлило количество граблей которые надо обходить.
Нельзя соответствующим образом настроить права, чтобы хотя бы такой глупости как "выскакивающие" диалоги не было?

Добавлено: 15 фев 2006, 21:52
Yury
CdR писал(а):
Yury писал(а):ну нету в виндах сендмыла родного :(
Да собственно он и не нужен, если вопрос только об отсылке стоит. Есть много менее перегруженных фичами реализаций.
"автоматическую рассылку по SMTP мессаг + аттачмент" можно тупо на shell организовать за 5 минут. Это настолько базовая функциональность, которая просто MUST HAVE элементарно реализуемой.
Меня впечатлило количество граблей которые надо обходить.
Нельзя соответствующим образом настроить права, чтобы хотя бы такой глупости как "выскакивающие" диалоги не было?
наверное все можно, через те же полиси, возможно

у меня на сдо ничего и не вылазило
и вся реализация - надцать строчек жава-скрипта
(про сам CDO скромно промолчу)

Добавлено: 15 фев 2006, 22:08
CdR
Yury писал(а):и вся реализация - надцать строчек жава-скрипта
JS? Эксцентрично!

Добавлено: 15 фев 2006, 22:11
Yury
CdR писал(а):
Yury писал(а):и вся реализация - надцать строчек жава-скрипта
JS? Эксцентрично!
геологи мы...сорри...волшебствам не обучены, знал бы что это эксцентрика - сделал бы на VBS :)

(делалось внутри мелкого асп-интерфейсика к бд)

Чего то вы наворотили

Добавлено: 16 фев 2006, 10:39
aissp
От пример на басике, на сях или шарпе анологично....


Private email As Mail.MailMessage = New Mail.MailMessage()
email.To = "qq@kgb.ru" '"qq@qq.qq;qq@dot.net"
email.BodyFormat = Mail.MailFormat.Text
email.From = "vancouver@kgb.ca"
email.Cc = "putin@kreml.ru"
email.Bcc = "bush@whtehouse.us"
email.Subject = "Macdonalds rulez"
Dim attachment As Mail.MailAttachment
attachment = New Mail.MailAttachment("BigMak.jpg")
email.Attachments.Add(attachment)
Mail.SmtpMail.SmtpServer = "127.0.0.1"
Mail.SmtpMail.Send(email)