Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как принять электронное письмо в виде *.eml ? / 6 сообщений из 6, страница 1 из 1
23.05.2006, 23:59
    #33746999
Vladimir410
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принять электронное письмо в виде *.eml ?
Как на FoxPro принять электронное письмо в виде *.eml , чтобы сохранить его в поле типа General таблицы?
...
Рейтинг: 0 / 0
27.05.2006, 00:55
    #33755677
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принять электронное письмо в виде *.eml ?
Hi Vladimir410!

Принять откуда? И при чём тут general, если eml это простой текстовый
файл???

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
29.05.2006, 09:09
    #33757330
Vladimir410
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принять электронное письмо в виде *.eml ?
Если Вы сохраните электронное письмо из Outlook Express в файл как "eml", то этот файл будет содержать в себе все вложения (документы, рисунки и т.п.).
Он не совсем текстовый.
Включить этот файл в таблицу FoxPro можно так:
Код: plaintext
1.
2.
3.
4.
CREATE TABLE почта (письмо G)
APPEND BLANK
APPEND GENERAL письмо FROM GETFILE("EML")
BROWSE LAST
Теперь открыть письмо и посмотреть все вложения можно просто кликнув по полю "письмо". Прием и хранение писем в таблице позволит создать любую нестандартную обработку электронной почты. Но для этого нужно уметь из FoxPro автоматически опрашивать почтовый ящик и принимать письма как ".eml"
Поможете?
...
Рейтинг: 0 / 0
29.05.2006, 13:30
    #33758054
S866
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принять электронное письмо в виде *.eml ?
Vladimir410 Он не совсем текстовый
совсем совсем текстовый :-))

прикрепленные к письму файлы кодируются кодировкой Base64 - в текстовый формат (помоему избыточное кодирование)- который изначально был заложен в протокол обмена почтой.

представляете вам самим надо будет писать алгоритм раскодировки вложений для их сохранения в первозданном виде. Я как то пытался разобраться в Base64 - много там непонятных моментов.

Насчет приема почты. Я бы пошел одним из 2-х путей.
1 . Общаться с почтовым ящиком посредством Outlook Express. им же и выгружать письма в eml. Общаться с ОЕ посредством OLE (наподобие как с Excel или Word). Я уверен ОЕ поддерживает такой механизм.
2. Где то в инете или Solution VFP попадались примеры работы фокса напрямую с почтовыми серверами. Я думаю Корефеи форума подкинут вам пару примеров.
...
Рейтинг: 0 / 0
29.05.2006, 13:48
    #33758124
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принять электронное письмо в виде *.eml ?
Можно и Outlook Express - только никакого OLE он не имеет
Есть OutLookExress.OCX на http://www.viscomsoft.com/ который подлезет под любую папку Эксрпесса - но он платный
Можно использовать EasyMail можно забирать письма с почтового сервер не удаляя их оттуда, если надо что бы данные потом обрабатывались почтовиком, тожно MS MAPI использовать
Вот пример с использованием EasyMail
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
SMTP=Createobject("EasyMail.SMTP.6")
POP3=Createobject("EasyMail.POP3.6")

With POP3
	.LicenseKey=DEF_LIC_KEY
	.Account=DEF_ACCOUNT
	.Password=DEF_PASSWORD
	.MailServer=DEF_MAIL_SERVER
	
	xRet=.Connect()
	If xRet #  0 
		Messagebox("Ошибка подключения к серверу # "+Transform(xRet)+" "+RaiseConnectError(xRet), 64 ,_Screen.Caption)
		Return .F.
	Endif
	*	xRet=.DownloadMessages( 0 )
	xRet=.DownloadHeaders()
	If xRet #  0 
		.Disconnect()
		Messagebox("Ошибка при получении сообщений с почтового сервера # "+Transform(xRet), 64 ,_Screen.Caption)
		Return .F.
	Endif
	If .Messages.Count= 0 
		Messagebox("Нет сообщений на сервере", 64 ,_Screen.Caption)
		Return .T.
	Endif
	
	
	For i= 1  To .Messages.Count
		MSGFile=DEF_MAILBOX_PATH+Sys( 2015 )+'.eml'
		.DownloadSingleMessageToFile(i,m.MSGFile, 1 )
		
*** GetDestAddr собственная функция 
		m.ToAddr=GetDestAddr(.Messages[i].FromAddr)
		If Not Empty(m.ToAddr)
			SMTP.Clear(0xF)
			SMTP.LicenseKey=DEF_LIC_KEY
			SMTP.MailServer=DEF_LOCAL_SERVER
			xRet=SMTP.RelayMessage(m.MSGFile,.Messages[i].FromAddr,m.ToAddr, 0 )
			
		Endif
	Next
	.Disconnect()
Endwith
...
Рейтинг: 0 / 0
29.05.2006, 19:55
    #33759194
Vladimir410
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принять электронное письмо в виде *.eml ?
Спасибо, буду пробовать
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как принять электронное письмо в виде *.eml ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]