2016-05-13 2 views
1

Мой формат файла, как показано ниже:Неверный формат отправки почты из Linux оболочки

cat myfile.txt 

Size of user01 is 1863 MB, it over than 100 MB 
Size of user02 is 1863 MB, it over than 100 MB 
Size of user03 is 815 MB, it over than 100 MB 

Но если я отправить его на мой почтовый ящик,

cat ./myfile.txt | mail -s "This is test Mail" [email protected] 

формат будет как показано ниже:

Size of user01 is 1863 MB, it over than 100 MB Size of user02 is 1863 MB, it over than 100 MB Size of user03 is 815 MB, it over than 100 MB 

Как сохранить исходный формат при отправке содержимого файла в мой почтовый ящик !?

+0

Я просто попробовал это в своей системе, и почта была правильно отформатирована. Похоже, у вас возникла проблема с настройкой вашего программного обеспечения 'sendmail' или' postfix'. – Barmar

ответ

1

SMTP specification говорит, что конец-линии в SMTP-сообщений является

\r\n (return+newline) 

где в Unix/Linux конец линии

\n (newline) 

Выполнить текст хотя tr фильтр для преобразования все \ n на \ r \ n - или пропустите его через unix2dos, который делает то же самое, например;

cat ./myfile.txt | unix2dos | mail -s "This is test Mail" [email protected] 
+0

Спасибо за ваш быстрый ответ. Я получил почту с приложением после установки unix2dos и попробовал команду. Можно ли сохранить текстовый формат? – Ilikeperl

+0

MTA должен преобразовать содержимое сообщения из формата Unix в формат SMTP. Нет необходимости делать это до того, как трубопроводы будут отправлены на почту. – Barmar

+0

@Soren Я хотел бы еще раз поблагодарить вас за вашу презентацию. Я пробовал несколько тестов: 'cat myfile.txt | unix2dos | mail -s «Это тестовая почта» myname @ mydomain.com' Но вместо того, чтобы получать содержимое файла по почте, я получил вложение с именем AT00001.bin. И я попробовал Mutt 'cat size_report.txt | unix2dos | mutt -s «Это тестовая почта» yiweis @ sparqtron.com' Это то, что я хочу. Я получил содержимое файла Спасибо большое! – Ilikeperl

0

Вы можете попробовать использовать команду почты с типом содержимого HTML и использовать HTML предварительно тег, чтобы получить его.

echo "<pre>`cat myfile.txt`</pre>" | mail -a "Content-type: text/html" -s "This is test Mail" [email protected] 
+0

Большое спасибо за вашу помощь. Я пробовал код, который вы предоставили. Но сообщение об ошибке системы: «Content-type: text/html: нет такого файла или каталога». Если я набрал 'echo '

'cat myfile.txt'
" | mail -s "Это тестовая почта" myname @ mydomain.com'. Я получил почту, которая имеет тот же формат, просто добавьте
. Есть ли опечатка в моем коде? –
                        
                            
    Ilikeperl
                                
                            
                        
                    

Смежные вопросы