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

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

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

Сообщение 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, то возникает опасение, что такое приложение можно будет использовать для автоматической рассылки.

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

Спасибо.

Ред. Забыл сказать - платформа Виндовз
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

я для подобной цели использовал CDO
Аватара пользователя
Ranger
Маньяк
Сообщения: 1199
Зарегистрирован: 22 окт 2003, 18:28
Откуда: 2:5025 -> Burnaby

Сообщение 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:
Аватара пользователя
Ranger
Маньяк
Сообщения: 1199
Зарегистрирован: 22 окт 2003, 18:28
Откуда: 2:5025 -> Burnaby

Сообщение Ranger »

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

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

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

Но если тебе надо, чтобы твоя бодяга шла под WinMe с нифига (без Outlook) - этот фокус не получится.
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

Как все запущено.... Столько всего для простой отправки почты. :(
Нет, правда, я в шоке.
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

CdR писал(а):Как все запущено.... Столько всего для простой отправки почты. :(
Нет, правда, я в шоке.
ну нету в виндах сендмыла родного :(
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

Yury писал(а):ну нету в виндах сендмыла родного :(
Да собственно он и не нужен, если вопрос только об отсылке стоит. Есть много менее перегруженных фичами реализаций.
"автоматическую рассылку по SMTP мессаг + аттачмент" можно тупо на shell организовать за 5 минут. Это настолько базовая функциональность, которая просто MUST HAVE элементарно реализуемой.
Меня впечатлило количество граблей которые надо обходить.
Нельзя соответствующим образом настроить права, чтобы хотя бы такой глупости как "выскакивающие" диалоги не было?
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

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

у меня на сдо ничего и не вылазило
и вся реализация - надцать строчек жава-скрипта
(про сам CDO скромно промолчу)
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

Yury писал(а):и вся реализация - надцать строчек жава-скрипта
JS? Эксцентрично!
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

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

(делалось внутри мелкого асп-интерфейсика к бд)
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

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

Сообщение 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)
Ответить