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

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

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как принять электронное письмо в виде *.eml ?
    #33757330
Vladimir410
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если Вы сохраните электронное письмо из 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
Как принять электронное письмо в виде *.eml ?
    #33758054
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir410 Он не совсем текстовый
совсем совсем текстовый :-))

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

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

Насчет приема почты. Я бы пошел одним из 2-х путей.
1 . Общаться с почтовым ящиком посредством Outlook Express. им же и выгружать письма в eml. Общаться с ОЕ посредством OLE (наподобие как с Excel или Word). Я уверен ОЕ поддерживает такой механизм.
2. Где то в инете или Solution VFP попадались примеры работы фокса напрямую с почтовыми серверами. Я думаю Корефеи форума подкинут вам пару примеров.
...
Рейтинг: 0 / 0
Как принять электронное письмо в виде *.eml ?
    #33758124
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и 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
Как принять электронное письмо в виде *.eml ?
    #33759194
Vladimir410
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, буду пробовать
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как принять электронное письмо в виде *.eml ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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