powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Oracle email attachments LF=>CRLF?
7 сообщений из 7, страница 1 из 1
Oracle email attachments LF=>CRLF?
    #39155171
Фотография ХБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью JavaMail посылаем (все внутри PL/SQL) текстовые файлы.
Файлы созданы на DB сервере пакетом utl_file; внутри файлов конец строки обозначен знаком 0A (LF)
Файлы посылаются кодом вида
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
import java.io.*;
import javax.mail.*;
import javax.mail.event.*;
import javax.activation.*;
import javax.mail.internet.*;
public class MyEmail {
public static int SendEmail( String smtpserver
							,String sender
							,String rec_to
							,String rec_cc
							,String subject
							,String txt
							,String filenames
							,String errormsg
...............................
MimeBodyPart mbp = new MimeBodyPart();
		 FileDataSource fds = new FileDataSource(filenames.substring(i,j));
		 mbp.setDataHandler(new DataHandler(fds));
		 mbp.setFileName(fds.getName());
		 mp.addBodyPart(mbp);
..................							)


файлы благополучно приходят к получателю, открываются в MS Outlook, все прекрасно.
Но чисто из любопытства я пытаюсь понять:

В какой момент, где происходит конверсия LF в CRLF?
Потому что полученные в аттаче текстовые файлы (.txt) вместо LF (как в оригинальных файлах) везде имеют аккуратно подставленные CR LF, так что даже Notepad видит их совершенно нормально.

Это какая-то фича JavaMail по умолчанию?
...
Рейтинг: 0 / 0
Oracle email attachments LF=>CRLF?
    #39155185
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большинство текстовых редакторов (за исключением некоторых Linux-овых) толерантны к 0d 0a или 0а.

Смотреть на сохранённый файл надо не notepad а hex-редактором. Это я говорю к тому
что глаза могут тебя обманывать. И когда разбираешся с ошибкой кодировок то нужно
работать не с текстовым представлением информации а с исходным двоичным.
...
Рейтинг: 0 / 0
Oracle email attachments LF=>CRLF?
    #39155190
Фотография ХБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБольшинство текстовых редакторов (за исключением некоторых Linux-овых) толерантны к 0d 0a или 0а.

Смотреть на сохранённый файл надо не notepad а hex-редактором. Это я говорю к тому
что глаза могут тебя обманывать. И когда разбираешся с ошибкой кодировок то нужно
работать не с текстовым представлением информации а с исходным двоичным.
Большое спасибо, капитан. Вы забыли добавить, что смотреть файл желательно на компьютере.

Кто-нибудь по делу, пожалуйста?
...
Рейтинг: 0 / 0
Oracle email attachments LF=>CRLF?
    #39155227
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХБ,

Не факт что это из-за JavaMail, а не, например, сервера:
https://community.oracle.com/thread/1590219?start=0&tstart=0 Generally, for any content with MIME type text/*, the receiver should save the
data using the line terminators that are appropriate for textual data on the receiving system.

So, for instance, if you're sending text to a Windows system, you should not expect it
to be saved with the Unix LF-only line terminators, but rather with the Windows CRLF
line terminators.

If you absolutely positively need to preserve the line terminators at any cost, you'll need
to force the content to be encoded using base64 encoding by setting the
"Content-Transfer-Encoding" header to "base64". You may also need to force the content
type to be something other than text/*, e.g., "application/octet-stream".
...
Рейтинг: 0 / 0
Oracle email attachments LF=>CRLF?
    #39155912
Фотография ХБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczХБ,

Не факт что это из-за JavaMail, а не, например, сервера:
https://community.oracle.com/thread/1590219?start=0&tstart=0 Generally, for any content with MIME type text/*, the receiver should save the
data using the line terminators that are appropriate for textual data on the receiving system.

So, for instance, if you're sending text to a Windows system, you should not expect it
to be saved with the Unix LF-only line terminators, but rather with the Windows CRLF
line terminators.

If you absolutely positively need to preserve the line terminators at any cost, you'll need
to force the content to be encoded using base64 encoding by setting the
"Content-Transfer-Encoding" header to "base64". You may also need to force the content
type to be something other than text/*, e.g., "application/octet-stream".
Я пытался это проверить; оказалось что если те же файлы посылать _вручную_, т.е. просто создать email в аутлуке и приаттачить файл - он приходит _без_ изменений, т.е. с тем же терминатором LF. Мне кажется это доказывает, что сервер вроде бы не причем.
...
Рейтинг: 0 / 0
Oracle email attachments LF=>CRLF?
    #39155916
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХБЯ пытался это проверить; оказалось что если те же файлы посылать _вручную_, т.е. просто создать email в аутлуке и приаттачить файл - он приходит _без_ изменений, т.е. с тем же терминатором LF. Мне кажется это доказывает, что сервер вроде бы не причем.
Нет, не доказывает. Надо смотреть все заголовки. Аттачить можно разными способами. Не исключено, что Outlook любые аттачметы кодирует. А JavaMail послал как plain text. Поэкспериментируйте с заголовками в MimeBodyPart. Посмотрите чем-нибудь сырое письмо стянутое с POP3, а не в клиенте. Сравните отправленные из Outlook и JavaMail.
...
Рейтинг: 0 / 0
Oracle email attachments LF=>CRLF?
    #39155939
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХБЭто какая-то фича JavaMail по умолчанию?RFC822 со товарищи.
"Плоский текст" означает канонический (CR LF) конец строки.
Конформантный инструментарий имеет право, более того, должен преобразовывать платформенно-специфичные разности к каноническому виду.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Oracle email attachments LF=>CRLF?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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