Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Почта-1

4 views
Skip to first unread message

Victor Metelitsa

unread,
Nov 21, 2005, 2:20:01 AM11/21/05
to
Пришлось вдруг разбираться с почтой - получение письма по POP3 и разбор
аттачментов. Для начала занялся разбором текста из файла:

fs := 'C:\prj\mail\x1.eml' asFilename readStream.
msg := MailMessage readFrom: fs.
attachName := msg attachmentNames at: 1.
attachment := (msg attachmentAt: 1) removeContentTransferEncoding.
attachment writeContentsOn: attachName asFilename writeStream.

Этот код, взятый из книжки, не работает из-за двух проблем. Чтобы он
работал, надо открывать файл так:

fs := ('C:\prj\mail\x1.eml' asFilename withEncoding: #'iso8859-1')
readStream.

Во-вторых, файл, сохранённый на диске из Outlook Express, разделителем
строк имеет CRLF, и в таком случае код в
Net.MultipartBody>>scanToBoundary: boundary from: stream
useSourceStream: aBoolean do: aDyadicBlock работает некорректно.
Советую заменить там
str := (lineEnd = LineEndCR
ifTrue: [String with: Character cr ]
ifFalse: [ String with: Character cr with: Character lf ]).
на

str := String with: Character cr

и убрать

stream lineEndTransparent.

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

0 new messages