Получение почты по IMAP (Synapse.ImapSend)
Модератор: Модераторы
Получение почты по IMAP (Synapse.ImapSend)
Доброго времени суток.
Интересует возможность получения почты по SMTP, каким компонентом это можно реализовать, если не затруднит с примерами кода.
Стоит задача получения почты с вложением, почтовый сервер - MS Exchange Server авторизация доменная.
Интересует возможность получения почты по SMTP, каким компонентом это можно реализовать, если не затруднит с примерами кода.
Стоит задача получения почты с вложением, почтовый сервер - MS Exchange Server авторизация доменная.
Последний раз редактировалось alaken 13.02.2012 15:15:21, всего редактировалось 1 раз.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
alaken, буду не оригинален. Поиск по данному форуму может даже дать готовые примеры.
alaken писал(а):возможность получения почты по SMTP
Возможности НЕТ! Так как данный протокол, ТОЛЬКО, для передачи почты
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Mr.Smart, ТС просто перепутал протоколы
Mr.Smart писал(а):alaken писал(а):возможность получения почты по SMTP
Возможности НЕТ! Так как данный протокол, ТОЛЬКО, для передачи почты
Да собственно я слукавил, простите.
Задача все еще актуальна - получение почты любым доступным способом (сервер MS Excahge)
Вот нечто похожее что мне нужно но тут используется Indy компоненты, может synapse или inet что то подобное умеют?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
synapce точно умеет
ткните носом пожалуйста.
в synapse нашел только модуль imapsend (
в synapse нашел только модуль imapsend (
Получить почту можно по IMAP, POP2, POP3 (может еще чего есть я не знаю), а SMTP он для отправки почты.
Вывод - не получится.
ЗЫ. Mr.Smart опередил
Вывод - не получится.
ЗЫ. Mr.Smart опередил
SAK писал(а):pop3send
Спасибо, это то, что нужно.
И снова вопрос, как менять статус письма на "прочтено"?
Добавлено спустя 6 часов 21 минуту 13 секунд:
гугление по протоколу pop3 показало, что он не работает со статусами сообщений.
То, что мне нужно так это imapsend, но соединиться с сервером не получается, делал все по аналогии с pop3send.
Код: Выделить всё
var
imapsnd: TImapSend;
n: integer;
sl: TStringList;
begin
sl := TStringList.Create;
imapsnd := TImapSend.Create;
//imapsnd.
imapsnd.Username := 'loginname';
imapsnd.Password := 'password';
imapsnd.TargetHost := 'serverhost';
AddToRecieve( 'Соединение с сервером...' );
if imapsnd.Login then // <- результат false
begin
Memo1.Clear;
// get the folder list into ListBox1
AddToRecieve( 'Получение списока папок.' );
imapsnd.List('', Listbox1.Items);
// select the Inbox
AddToRecieve( 'Выделяем inbox...' );
if imapsnd.SelectFolder('inbox') then
begin
// loop through the items
for n := 1 to imapsnd.SelectedCount do
begin
// get each message's header
if imapsnd.FetchHeader(n, sl) then
begin
// and append them to a TMemo
Memo1.Lines.AddStrings(sl);
Memo1.Lines.Append('');
end;
end;
imapsnd.CloseFolder;
end;
imapsnd.Logout;
end
else
AddToRecieve( 'Соединение с сервером не установлено' );
imapsnd.Free;
sl.Free;
в какую сторону копать, где смотреть ошибку соединения?
Я для отправки использовал Mapi. Есть функции: MAPILogon, MAPISendMail, MAPILogoff. Должно быть и на прием, но мне было не нужно.
Эта API работает с почтовым клиентом по умолчанию, т.е. отправленные ее письма находятся в отправленных в установленной на компе почтовой программе.
Статус прочтено возможно Вы рассматриваете как раз в клиенте.
А если на сервере, то только через IMAP, но нужно, чтобы сам сервер его поддерживал. Да и технология работы другая. Нужно вначале в почтовом клиенте понять как работает ваша почта.
Эта API работает с почтовым клиентом по умолчанию, т.е. отправленные ее письма находятся в отправленных в установленной на компе почтовой программе.
Статус прочтено возможно Вы рассматриваете как раз в клиенте.
А если на сервере, то только через IMAP, но нужно, чтобы сам сервер его поддерживал. Да и технология работы другая. Нужно вначале в почтовом клиенте понять как работает ваша почта.
alaken писал(а):где смотреть ошибку соединения?
Код: Выделить всё
imapsnd.ResultStringВыдает: "S2 BAD Command received in Invalid state."
Ситуация яснее не стала...
alexey38 писал(а):А если на сервере, то только через IMAP, но нужно, чтобы сам сервер его поддерживал. Да и технология работы другая. Нужно вначале в почтовом клиенте понять как работает ваша почта.
Почтовый сервер MS Exchange Server
Клиент MS Outlook работает по imap авторизация доменная.
Гугление по строке "BAD Command received in Invalid state" вывело на решение: сообщение 1, сообщение 2.
мои попытки установить параметры ничего не дали, а как выставить нужный порт я вообще не нашел.
проблема до сих пор актуальна, прошу помощи.
мои попытки установить параметры ничего не дали, а как выставить нужный порт я вообще не нашел.
Код: Выделить всё
...
var
IMAPSnd: TImapSend;
begin
IMAPSnd := TImapSend.Create;
IMAPSnd.AutoTLS := True;
IMAPSnd.FullSSL := True;
... проблема до сих пор актуальна, прошу помощи.
http://www.dbatutor.com/2012/01/k-bad-command-received-in-invalid-state.html
http://stackoverflow.com/questions/4726175/javamail-weblogic-imap-ssl-and-exchange-2010
Здесь чтото про ssl ,
Может надо установить вот это http://www.slproweb.com/products/Win32OpenSSL.html как у меня viewtopic.php?f=10&t=7406
http://stackoverflow.com/questions/4726175/javamail-weblogic-imap-ssl-and-exchange-2010
Здесь чтото про ssl ,
Может надо установить вот это http://www.slproweb.com/products/Win32OpenSSL.html как у меня viewtopic.php?f=10&t=7406
