Отправка писем через VB6, если нет почтового клиента - PullRequest
2 голосов
/ 01 марта 2011

У меня есть приложение VB6, которое используется большим количеством клиентов.

Мне нужно разрешить клиентам отправлять мне электронные письма.В прошлом я делал это, используя элементы управления Microsoft MAPI.Однако не у всех из них установлен почтовый клиент, так как вместо этого они используют веб-почту.

Есть ли какой-нибудь другой метод, который кто-либо может порекомендовать, который позволил бы им сделать это?

Ответы [ 2 ]

5 голосов
/ 01 марта 2011

SMTP

Вы можете использовать CDO для Windows, если сделаете несколько предположений:

  • Все ваши пользователи на Windows 2000 или более поздней версии.
  • Пользователи никогда не будут находиться за брандмауэром, блокирующим SMTP или передавающим все порты SMTP на корпоративный сервер.
  • У вас есть SMTP-сервер, у которого есть учетная запись, с которой можно отправлять электронные письма пользователям.
  • Вы встраиваете адрес сервера и учетные данные в вашу программу.

Иногда использование SMTP-сервера, прослушивающего альтернативный порт, решит вторую проблему, но часто такой альтернативный порт с большей вероятностью будет заблокирован.

SMTP умирает

Злоупотребление с течением времени сделало SMTP все менее и менее жизнеспособным для автоматического / вспомогательного контакта с пользователем. Слишком много переменных связано с попыткой открыть своего рода «чистый канал» для SMTP-коммуникации, так как люди усерднее борются со спамерами и тому подобное.

Сегодня я бы с большей вероятностью использовал для этого либо WebDAV, либо веб-сервис. Оба используют HTTP / HTTPS, который с большей вероятностью преодолеет брандмауэры и обычно используется большинством прокси-серверов. WebDAV часто более «скользкий», чем веб-сервисы, которые все больше и больше прокси блокируют. Вы также можете использовать что-то более RESTful, чем SOAPy, так как трафик «пахнет» как пользователь, просматривающий прокси-серверы.

Чистый вариант WebDAV

Есть даже бесплатных провайдеров WebDAV, предлагающих 2 ГБ дискового пространства с основным и гостевым пользователем. Гостевой учетной записи могут быть предоставлены ограниченные права на различные папки, поэтому некоторые папки могут публиковать ваши сообщения, другие папки, из которых они могут получать данные (папки только для чтения) и т. Д. Для платной учетной записи вы можете получить больше памяти, дополнительных пользователей и т. Д. .

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

Вам все еще нужно встраивать учетные данные пользователя в вашу программу, но со временем изменить пароли может быть проще. Просто попросите программу загрузить информационный файл с новым паролем и датой вступления в силу, и программа перевернет «новый» пароль на «текущий» после запуска в эту дату или после него.

Поддержка WebDAV в Windows варьируется. Начиная с WinXP SP3, вы можете просто программным образом сопоставить букву диска с общим ресурсом WebDAV, а затем использовать обычные файловые операторы ввода-вывода для него и разархивировать букву, когда закончите. Для более общего использования даже в Win9x вы можете создать простой клиент WebDAV поверх XMLHTTPRequest или использовать стороннюю библиотеку.

веб-сервисы имеют более высокую стоимость

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

Веб-службы также могут быть более проблематичными с точки зрения управления версиями. Если вы позже обновите свою программу, чтобы предоставить различную информацию в этих сообщениях о контактах пользователей, вам придется создать другую веб-службу, а также изменить как приложение, так и агрегатор. Используя WebDAV, вы можете просто создать папку «новый формат» на сервере, и новая программа отправит туда данные в новом формате. Ваш агрегатор может просто извлечь из обеих папок и выполнить любое необходимое переформатирование в новый формат локальной базы данных / репозитория сообщений.

Это всего лишь дополнительные дополнительные усилия, и веб-служба может быть подходящим вариантом, даже если это просто что-то написанное, например, акцептор GET / POST формы HTML.

0 голосов
/ 01 марта 2011

Хотя этот вопрос для VBA, вы можете найти его интересным. Отправка электронных писем с использованием VBA без MAPI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...