Topic: Получение электронной почты

Для создаваемой CRM надо иметь возможность получать сообщения электронной почты. Каждое принятое сообщение надо записывать в БД (от кого, дата, тема, сообщение, файлы вложения). Отправка сообщений в MVD есть, а - получение почты? Есть ли такая возможность? Очень надо, даже если надо много кода или потребуется использовать сторонние библиотеки.

Re: Получение электронной почты

Здравствуйте.



Пока такой возможности нет, но попробую реализовать это в ближайшую неделю.

Dmitry.

Re: Получение электронной почты

Готово
http://myvisualdatabase.com/forum/viewt … 058#p21058

Dmitry.

Re: Получение электронной почты

Ругается на строке   IdPOP3: TIdPOP3; 
Пишет "Unknown type: 'TIdPOP3' at 7:18.
Очевидно библиотеки не хватает. Где ее взять и как подключить?

Re: Получение электронной почты

mikhail_a wrote:

Ругается на строке   IdPOP3: TIdPOP3; 
Пишет "Unknown type: 'TIdPOP3' at 7:18.
Очевидно библиотеки не хватает. Где ее взять и как подключить?

Забыл, скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/f3j4kfpnttm1o … b.zip?dl=0

Dmitry.

Re: Получение электронной почты

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

1. При сохранении на локальный диск файлов вложений иногда выпадает ошибка windows из-за неправильного имени файла. Т.е. имя полученного файла недопустимо для Windows.
Как обрабатывать такую ошибку или как избежать ее появления?

2. Все 160 сообщений в моем почтовом ящике имеют ContentType: multipart/report  или multipart/related или multipart/mixed. Это означает, что тело сообщения состоит из нескольких частей - как минимум одна часть тела письма в текстовом виде, а вторая - в HTML виде. Текущая версия программы корректно получает все эти части сообщений. Однако, в одном сообщении тело сообщения в текстовом виде идет первой частью, а HTML вид - второй частью, а в другом сообщении порядок может поменяться наоборот.  Получается, что  получить, например, только текстовые виды сообщений исходя из порядка частей сообщения нельзя.
Каким образом получать тело сообщения в нужном виде (например, только в текстовом)?


3. При записи сообщений в БД надо экранировать текст почтового сообщения от нежелательных символов. Экранирует ли MVD данные самостоятельно или об этом надо самим заботиться?

4. Где можно почитать про этот компонент? Хотелось бы понять, какие еще реквизиты полученного письма можно получить.

Re: Получение электронной почты

mikhail_a
1. Можно проверять имя файла (Msg.MessageParts.Items[k]).Filename) на недопустимые символы и заменить их на допустимые функцией  ReplaceStr


2. Можете узнать тип сообщения так

TIdText(Msg.MessageParts.Items[k]).ContentType

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

text/plain

или

text/plain; format=flowed


3. Для этого есть функция escape_special_characters()


4. http://www.e-iter.net/Knowledge/Indy9/007617.html
http://www.e-iter.net/Knowledge/Indy9/007544.html

Dmitry.