В настоящее время мне поручено добавить ограниченную функциональность электронной почты в приложение. Это только для ПК с Windows, на которых не установлен Outlook, но может быть Outlook Express, Windows Live Mail или что-то подобное. Мне не разрешено получать данные о почтовом сервере, так как ПК предназначены для клиентов, а не для внутренних. Я тоже не могу использовать CDO или расширенный MAPI поскольку у клиента может не быть Exchange, и мне также было запрещено создавать веб-сервисы для реализации функциональности, поскольку это было бы слишком дорого для реализации.
Естественно, я решил использовать стороннюю библиотеку, но лучшую, которую я нашел, Искупление, Насколько я могу судить, это не подходит, потому что он использует расширенный MAPI и взаимодействует только с Exchange или Outlook.
Простая ссылка mailto не будет достаточной, потому что я должен включать вложения.
Затем я разработал некоторый код .NET на основе этот который в основном работает, но есть несколько проблем в том, что он работает только без вложений, если клиент Outlook не установлен и что управляемый код просто не совместим с MAPI в долгосрочной перспективе. Обычно это нормально работает на моей основной машине для разработки, но мне удалось до сих пор тестировать только на XP с Outlook Express и Vista с Windows Mail, и вложения не работают ни в одном из них.
я был расследование дальше и обнаружили, что единственное надежное решение, по-видимому, заключается в написании COM-оболочки C ++ или VB6 вокруг простых функций MAPI в MAPI32.dll. Я бы предпочел не создавать VB6, хотя это было бы для меня самым простым решением, а C ++ не входит в мои навыки, и я сомневаюсь, что он будет работать лучше, чем управляемый код, который я использовал со всеми Сценарии операционной системы и почтового клиента.
Как я могу надежно реализовать электронную почту с функцией вложения в соответствии с вышеуказанными ограничениями?
Мы используем библиотеку CodeStone, которая поддерживает IMAP и POP и довольно проста в реализации.
Других решений пока нет …