Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Отправка e-mail


Автор: Keeper89 19.12.2009, 16:47
Доброго времени суток!

Знаю, что вопрос изъезжен вдоль и поперек, но я запустался в способах в нашем FAQ и Интернете.

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

Какой посоветуете?

Автор: AntonN 22.12.2009, 13:24
Keeper89, 
и опять я попиарю Synapse smile
http://synapse.ararat.cz/doku.php/download
есть у них мейлсервер http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/v/project/vi/visualsynapse/visual%20synapse%20servers/synapseMail%200.0.6/

сам написал утилитку которая отправляет письмо, с вложениями (но исходник не дам, потому как используется она в интранете и без smtp авторизации на сервере), отлично отправляет. Единственно пришлось поковырять кодировку темы письма.

И к вопросу о самой отправке. Почти все сервисы в инете предполагают pop3/smtp авторизацию, т.е. нужно указывать сервер, учетную запись и пароль от нее. Если пароль хранить в самой программе то его могут украсть (даже если работать через https могут залезть в бинарник). Поэтому если ты делаешь отратную связь в своей программе, есть резон на своем сайте сделать скрипт, который принимает POST (по http/s) текста письма, и сам уже отправит письмо тебе (например через phpmailer), таким образом пароль и учетка никому не будет известна.

Автор: Keeper89 22.12.2009, 15:53
AntonN, 
Цитата(AntonN @  22.12.2009,  13:24 Найти цитируемый пост)
И к вопросу о самой отправке. Почти все сервисы в инете предполагают pop3/smtp авторизацию, т.е. нужно указывать сервер, учетную запись и пароль от нее. Если пароль хранить в самой программе то его могут украсть (даже если работать через https могут залезть в бинарник). Поэтому если ты делаешь отратную связь в своей программе, есть резон на своем сайте сделать скрипт, который принимает POST (по http/s) текста письма, и сам уже отправит письмо тебе (например через phpmailer), таким образом пароль и учетка никому не будет известна. 

Т.е. каким-то "анонимным" образом отправить нельзя?

З.Ы. Сайта нет, поэтому придется изобретать что-то другое smile

Автор: Snowy 22.12.2009, 16:08
И откуда такое непреодолимое желание, отправить именно почту?
В свете мировой борьбы со спамом, это не такое уж и весёлое занятие.
Хочешь отправлять сообщения себе? Ну так и зачем тебе тогда вообще почта?
Используй http и отправляй сообщения на свой сайт.
Нет сайта - заведи. Бесплатных сервисов пруд пруди.

Автор: AntonN 22.12.2009, 16:26
Цитата

Т.е. каким-то "анонимным" образом отправить нельзя?

только если твой прочтовый "провайдер" не требует smtp-авторизацию. Но все бесплатные - требуют, по вполне понятным причинам smile не бесплатные, в общем-то, тоже smile

есть еще вариант: по клику юзера открывать клиент юзера, подставлять туда адрес, тему, и может быть некоторые файлы, и ждать когда он отправит. Но я бы не стал такое отправлять smile

Цитата

Нет сайта - заведи. Бесплатных сервисов пруд пруди. 

Совершенно неправльное решение. Бесплатное подходит только для одного - загрузить скрипт, посмотреть, и выкинуть его. Если хочется стабильности придется купить себе хостинг, где хозяин будешь ты сам.

Автор: Keeper89 22.12.2009, 19:36
Цитата(AntonN @  22.12.2009,  16:26 Найти цитируемый пост)
Совершенно неправльное решение. Бесплатное подходит только для одного - загрузить скрипт, посмотреть, и выкинуть его. Если хочется стабильности придется купить себе хостинг, где хозяин будешь ты сам. 

Вот мне тоже так кажется.

Все-таки я думаю, что неплохим подходом будет завести отдельный ящик с элементами шифрования в коде. Ы?

Автор: darkmamba 22.12.2009, 20:02
AntonN, Можно поинтересоватся что такое Интранет и как можно отправить на любой ящик с любого ящика(я так понимаю?) письмо с вложением и без.

По поводу темы, могу предложить только СМТП )))))

Тупо сокеты с ивентами. + команды EHLO [server], LOGIN, Username(base64), Password(base64).. ну и прочее, если норм сделать то получится даже очень компактно. Только с безопастностью, конечно вилы. Опять же, какое дело до ящика с которого ты отправляеш.. ?

Автор: AntonN 22.12.2009, 20:15
Цитата

Можно поинтересоватся что такое Интранет и как можно отправить на любой ящик с любого ящика(я так понимаю?) письмо с вложением и без.

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

Цитата

Все-таки я думаю, что неплохим подходом будет завести отдельный ящик с элементами шифрования в коде. Ы? 

все равно если захотят - взломают, а когда узнают логины к твоей почте то сам представляешь что можно сделать smile Подсмотрят, в конце концов, что твоя прога отправляет серверу.

Автор: darkmamba 22.12.2009, 20:24
AntonN, Но отправляется получается от одного имени ?

Ну да вообщето, это палево если с твоего ящика будет спам разлетатся... в итоге просто заблочат почту.. и .. все. =)

Автор: Keeper89 22.12.2009, 21:57
Цитата(AntonN @  22.12.2009,  20:15 Найти цитируемый пост)
все равно если захотят - взломают, а когда узнают логины к твоей почте то сам представляешь что можно сделать smile Подсмотрят, в конце концов, что твоя прога отправляет серверу. 

Таким же образом они и сообщения на сайт могут перехватить. И тот же сайт завалить сообщениями.

Автор: profesiachuvak 22.12.2009, 22:45
Вот ёмаё, слежу за темой жду когда же предложат как реализовать посылку сообщения, а тут уже от темы всё дальше и дальше отдаляются. Вернитесь ребят.  smile 

Автор: AntonN 23.12.2009, 02:07
Цитата

Но отправляется получается от одного имени ?

нет никакого имени, что напишешь в заголовке, то и будет, хоть putin@krml.ru
но это внутренний сервер, для внутренних служб

Цитата

Таким же образом они и сообщения на сайт могут перехватить. И тот же сайт завалить сообщениями. 

ну перехватят они сообщение, и что? smile
самое главное чтобы не узнали аттрибуты твоего почтового ящика (логин-пароль), а текст письма ломатели и так знают (елси они его набирают, а если не набирают - ну и пусть). Отправляя скрипту текст ты не указываешь логин-пароль, он хранится на сайте, и скрипт отправки письма с сайта сам отправит тебе письмо с переданым ему текстом от программы. Таким образом ты нигде не светишь свои пароли.

profesiachuvak, 
я там чуть выше накидал ссылок, этого достаточно

Автор: Keeper89 23.12.2009, 13:56
Цитата(AntonN @  23.12.2009,  02:07 Найти цитируемый пост)
ну перехватят они сообщение, и что? smile
самое главное чтобы не узнали аттрибуты твоего почтового ящика (логин-пароль), а текст письма ломатели и так знают (елси они его набирают, а если не набирают - ну и пусть). Отправляя скрипту текст ты не указываешь логин-пароль, он хранится на сайте, и скрипт отправки письма с сайта сам отправит тебе письмо с переданым ему текстом от программы. Таким образом ты нигде не светишь свои пароли.

Жалко конечно, на бесплатном хостинге сайт заводить не хочется, а платный не нужен, т.к. программа не всемирного масштаба.

Автор: darkmamba 23.12.2009, 14:10
profesiachuvak,  Socket -> WSACreateEvent -> WSAWaitForMultipleEvent -> FD_READ: EHLO [server], LOGIN, Username(base64), Password(base64) . . .

Автор: profesiachuvak 23.12.2009, 14:43
Цитата(darkmamba @  23.12.2009,  14:10 Найти цитируемый пост)
profesiachuvak,  Socket -> WSACreateEvent -> WSAWaitForMultipleEvent -> FD_READ: EHLO [server], LOGIN, Username(base64), Password(base64) . . . 


darkmamba, 
Я не понял о чём речь?


Автор: darkmamba 23.12.2009, 16:41
profesiachuvak,  О том как реализовать отправку сообщения. В общем то это ответ на твой вопрос был. Ищи по тем словам, если не охото разбиратся как это работает то возьми компонент SMTP, но есть везде.

Автор: Snowy 24.12.2009, 13:46
Что касается механизма отправки почты - внизу страницы полно ссылок.
Что касается незаметной отправки почты - вероятность этого 20-30%
Что касается незаметной отправки http запроса - вероятность 70-90%
Суть сей басни такова: Пока юзер программе не расскажет, куда слать почту, дёргаться бесполезно.
А вот правило отправки http можно узнать у IE.
Для тех, кто живёт в Москве или Питере, объясняю - большинство людей в интернет ходят через прокси.
Организации, спутники, домовые сети и т.д. - это всё сидит за прокси.
И в мире таких большинство.
Ваш любимый SMTP сервер в большинстве случаев просто будет недоступен.
Так что выхода два:
1. Спросить у юзера, как вашей программе слать почту.
2. Не использовать почту.
А непосредственно реализаций тут на форуме вагон и две цистерны.

Автор: AntonN 29.12.2009, 16:40
Цитата

Для тех, кто живёт в Москве или Питере, объясняю - большинство людей в интернет ходят через прокси.

Для тех, кто живет только дома объясню - есть корпоративные сети, в которых могут быть разные настройки для интранета, и для интернета, хватать первые попавшиеся - это глупо.
Настройки конкретной программы хранятся в самоей программе, а не используются "какие то ИЕ". Можно в настройках уточнить у пользователя, хочет ли он использовать системные настройки сети и прописать их в полях конфигурации программы.

Автор: Snowy 29.12.2009, 18:28
Чтобы настройки хранились в "самоей программе"нужно, чтобы эти настройку туда кто-нибудь прописал.
Не нужно читать между строк - в моём посте всё на русском.
Если пользователь тебе сообщил настройки - отправляй как хочешь.
Если нет - по http доставить шансов в разы больше.
Я написал только это...
А за http агитирую больше потому, что такие данные должны складываться в БД, а не в почтовый ящик.

Автор: AntonN 30.12.2009, 17:04
http - это протокол, через него передаются любые данные, почта, как и http лишь средство доставки, как и где оно будет хранится - дело десятое. В БД не хранится http, и через http данные не добавляются в БД.
Три месяца назад писал систему, которая принимает файл на служебный ящик, достает прикрепленные файлы либо смотрит тело письма, парсит, шлет уведомления если надо другие почтовые ящики и добавляет данные в БД. Тоже самое проводится через "внешний" скрипт импорта на том же хостинге, тоже самое можно проводить с помощью отсылки SMS на служебный номер, так же как сервер примет файл по ftp/sftp. Все одно - данные добавляются в БД, без разницы по какому протоколу они отправлены.

я бы агитировал за https если уж на то пошло smile

ADD хотя признаюсь, что контролер шлюза SMS писал не я =)

Автор: darkmamba 31.12.2009, 17:34
Можно по подробнее о шлюзе SMS ?

Автор: AntonN 31.12.2009, 20:40
у оператора арендуется услуга "короткий номер", с которого один сервис получает посланные СМС, до меня доходили уже готовые данные

Автор: hkdkest 16.1.2010, 00:06
Цитата(Keeper89 @ 19.12.2009,  16:47)
Доброго времени суток!

Знаю, что вопрос изъезжен вдоль и поперек, но я запустался в способах в нашем FAQ и Интернете.

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

Какой посоветуете?

опять же - исходник пример
http://codingrus.ru/infusions/pro_download_panel/download.php?did=62

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)