| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Отправка e-mail |
| Автор: Keeper89 19.12.2009, 16:47 |
| Доброго времени суток! Знаю, что вопрос изъезжен вдоль и поперек, но я запустался в способах в нашем FAQ и Интернете. Мне нужен простой способ отправки письма на свой ящик из программы, крайне желательно, чтобы он не зависел от установленных клиентов и т.п. Плюс может есть варианты поновее, в сети в основном старые методы. Какой посоветуете? |
| Автор: AntonN 22.12.2009, 13:24 |
| Keeper89, и опять я попиарю Synapse 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), таким образом пароль и учетка никому не будет известна. |
| Автор: Snowy 22.12.2009, 16:08 |
| И откуда такое непреодолимое желание, отправить именно почту? В свете мировой борьбы со спамом, это не такое уж и весёлое занятие. Хочешь отправлять сообщения себе? Ну так и зачем тебе тогда вообще почта? Используй http и отправляй сообщения на свой сайт. Нет сайта - заведи. Бесплатных сервисов пруд пруди. |
| Автор: AntonN 22.12.2009, 16:26 | ||||
только если твой прочтовый "провайдер" не требует smtp-авторизацию. Но все бесплатные - требуют, по вполне понятным причинам есть еще вариант: по клику юзера открывать клиент юзера, подставлять туда адрес, тему, и может быть некоторые файлы, и ждать когда он отправит. Но я бы не стал такое отправлять
Совершенно неправльное решение. Бесплатное подходит только для одного - загрузить скрипт, посмотреть, и выкинуть его. Если хочется стабильности придется купить себе хостинг, где хозяин будешь ты сам. |
| Автор: Keeper89 22.12.2009, 19:36 | ||
Вот мне тоже так кажется. Все-таки я думаю, что неплохим подходом будет завести отдельный ящик с элементами шифрования в коде. Ы? |
| Автор: darkmamba 22.12.2009, 20:02 |
| AntonN, Можно поинтересоватся что такое Интранет и как можно отправить на любой ящик с любого ящика(я так понимаю?) письмо с вложением и без. По поводу темы, могу предложить только СМТП ))))) Тупо сокеты с ивентами. + команды EHLO [server], LOGIN, Username(base64), Password(base64).. ну и прочее, если норм сделать то получится даже очень компактно. Только с безопастностью, конечно вилы. Опять же, какое дело до ящика с которого ты отправляеш.. ? |
| Автор: AntonN 22.12.2009, 20:15 | ||||
внутренняя сеть, с поднятым в ней своим почтовым сервером. Настроен так что не требует авторизации, и нужно указать только получателя, отправитель не важен
все равно если захотят - взломают, а когда узнают логины к твоей почте то сам представляешь что можно сделать |
| Автор: darkmamba 22.12.2009, 20:24 |
| AntonN, Но отправляется получается от одного имени ? Ну да вообщето, это палево если с твоего ящика будет спам разлетатся... в итоге просто заблочат почту.. и .. все. =) |
| Автор: Keeper89 22.12.2009, 21:57 | ||
Таким же образом они и сообщения на сайт могут перехватить. И тот же сайт завалить сообщениями. |
| Автор: profesiachuvak 22.12.2009, 22:45 |
| Вот ёмаё, слежу за темой жду когда же предложат как реализовать посылку сообщения, а тут уже от темы всё дальше и дальше отдаляются. Вернитесь ребят. |
| Автор: AntonN 23.12.2009, 02:07 | ||||
нет никакого имени, что напишешь в заголовке, то и будет, хоть putin@krml.ru но это внутренний сервер, для внутренних служб
ну перехватят они сообщение, и что? самое главное чтобы не узнали аттрибуты твоего почтового ящика (логин-пароль), а текст письма ломатели и так знают (елси они его набирают, а если не набирают - ну и пусть). Отправляя скрипту текст ты не указываешь логин-пароль, он хранится на сайте, и скрипт отправки письма с сайта сам отправит тебе письмо с переданым ему текстом от программы. Таким образом ты нигде не светишь свои пароли. profesiachuvak, я там чуть выше накидал ссылок, этого достаточно |
| Автор: Keeper89 23.12.2009, 13:56 | ||
Жалко конечно, на бесплатном хостинге сайт заводить не хочется, а платный не нужен, т.к. программа не всемирного масштаба. |
| Автор: 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, Я не понял о чём речь? |
| Автор: 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 если уж на то пошло ADD хотя признаюсь, что контролер шлюза SMS писал не я =) |
| Автор: darkmamba 31.12.2009, 17:34 |
| Можно по подробнее о шлюзе SMS ? |
| Автор: AntonN 31.12.2009, 20:40 |
| у оператора арендуется услуга "короткий номер", с которого один сервис получает посланные СМС, до меня доходили уже готовые данные |
| Автор: hkdkest 16.1.2010, 00:06 | ||
опять же - исходник пример http://codingrus.ru/infusions/pro_download_panel/download.php?did=62 |