docs/master
changeset 114:92cbd3fa1c40
Wrote text about displaying mime messages.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Mon, 25 Jun 2012 12:37:26 +0200 |
parents | 4a1f5ec6220d |
children | 7dc4867fef91 |
files | discussion.roff |
diffstat | 1 files changed, 128 insertions(+), 1 deletions(-) [+] |
line diff
1.1 --- a/discussion.roff Mon Jun 25 10:07:33 2012 +0200 1.2 +++ b/discussion.roff Mon Jun 25 12:37:26 2012 +0200 1.3 @@ -2241,7 +2241,134 @@ 1.4 1.5 .U3 "Showing MIME Messages 1.6 .P 1.7 -FIXME 1.8 +The program 1.9 +.Pn mhshow 1.10 +had been written to display MIME messages. 1.11 +It implemented the conceptional view of the MIME RFCs. 1.12 +Nmh's 1.13 +.Pn mhshow 1.14 +handled each MIME part independently, presenting them separately 1.15 +to the user. 1.16 +This does not match today's understanding of email attachments, 1.17 +where displaying a message is seen to be a single, integrated operation. 1.18 +Today, email messages are expected to consist of a main text part 1.19 +plus possibly attachments. 1.20 +They are not any more seen to be arbitrary MIME hierarchies with 1.21 +information on how to display the individual parts. 1.22 +I adjusted 1.23 +.Pn mhshow 's 1.24 +behavior to the modern view on the topic. 1.25 +.P 1.26 +Note that this section completely ignores the original 1.27 +.Pn show 1.28 +program, because it was not capable to display MIME messages 1.29 +and is no longer part of mmh. 1.30 +Although 1.31 +.Pn mhshow 1.32 +was renamed to 1.33 +.Pn show 1.34 +in mmh, this section uses the name 1.35 +.Pn mhshow , 1.36 +in order to avoid confusion. 1.37 +.P 1.38 +In mmh, the basic idea is that 1.39 +.Pn mhshow 1.40 +should display a message in one single pager session. 1.41 +Therefore, 1.42 +.Pn mhshow 1.43 +invokes a pager session for all its output, 1.44 +whenever it prints to a terminal. 1.45 +.Ci a4197ea6ffc5c1550e8b52d5a654bcaaaee04a4e 1.46 +In consequence, 1.47 +.Pn mhl 1.48 +does no more invoke a pager. 1.49 +.Ci 0e46503be3c855bddaeae3843e1b659279c35d70 1.50 +With 1.51 +.Pn mhshow 1.52 +replacing the original 1.53 +.Pn show , 1.54 +output from 1.55 +.Pn mhl 1.56 +does not go to the terminal directly, but through 1.57 +.Pn mhshow . 1.58 +Hence, 1.59 +.Pn mhl 1.60 +does not need to invoke a pager. 1.61 +The one and only job of 1.62 +.Pn mhl 1.63 +is to format messages or parts of them. 1.64 +The only place in mmh, where a pager is invoked is 1.65 +.Pn mhshow . 1.66 +.P 1.67 +.Pe mhshow-show-* 1.68 +profile entries can be used to display MIME parts in a specific way. 1.69 +For instance, PDF and Postscript files could be converted to plain text 1.70 +to display them in the terminal. 1.71 +In mmh, the displaying of MIME parts will always be done serially. 1.72 +The request to display the MIME type `multipart/parallel' in parallel 1.73 +is ignored. 1.74 +It is simply treated as `multipart/mixed'. 1.75 +.Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6 1.76 +This could already be requested with the, now removed, 1.77 +.Sw -serialonly 1.78 +switch of 1.79 +.Pn mhshow . 1.80 +As MIME parts are always processed exclusively , i.e. serially, 1.81 +the `%e' escape in 1.82 +.Pe mhshow-show-* 1.83 +profile entries became useless and was thus removed. 1.84 +.Ci a20d405db09b7ccca74d3e8c57550883da49e1ae 1.85 +.P 1.86 +In the intended setup, only text content would be displayed. 1.87 +Non-text content would be converted to text by appropriate 1.88 +.Pe mhshow-show-* 1.89 +profile entries before, if possible and wanted. 1.90 +All output would be displayed in a single pager session. 1.91 +Other kinds of attachments are ignored. 1.92 +With 1.93 +.Pe mhshow-show-* 1.94 +profile entries for them, they can be displayed serially along 1.95 +the message. 1.96 +For parallel display, the attachments need to be stored to disk first. 1.97 +.P 1.98 +To display text content in foreign charsets, they need to be converted 1.99 +to the native charset. 1.100 +Therefore, 1.101 +.Pe mhshow-charset-* 1.102 +profile entries used to be needed. 1.103 +In mmh, the convertion is done automatically by piping the text through 1.104 +the 1.105 +.Pn iconv 1.106 +command, if necessary. 1.107 +.Ci 2433122c20baccb10b70b49c04c6b0497b5b3b60 1.108 +Custom 1.109 +.Pe mhshow-show-* 1.110 +rules for textual content might need a 1.111 +.Cl "iconv -f %c %f | 1.112 +prefix to have the text converted to the native charset. 1.113 +.P 1.114 +Although the convertion of foreign charsets to the native one 1.115 +has improved, it is not consistent enough. 1.116 +Further work needs to be done and 1.117 +the basic concepts in this field need to be re-thought. 1.118 +Though, the default setup of mmh displays message in foreign charsets 1.119 +correctly without the need to configure anything. 1.120 + 1.121 + 1.122 +.ig 1.123 + 1.124 +.P 1.125 +mhshow/mhstore: Removed support for retrieving message/external-body parts. 1.126 +These tools won't download the contents automatically anymore. Instead, 1.127 +they print the information needed to get the contents. If someone should 1.128 +really receive one of those rare message/external-body messages, he can 1.129 +do the job manually. We save nearly a thousand lines of code. That's worth 1.130 +it! 1.131 +(The profile entry `nmh-access-ftp' and sbr/ruserpass.c for reading 1.132 +~/.netrc are gone now.) 1.133 +.Ci 55e1d8c654ee0f7c45b9361ce34617983b454c32 1.134 + 1.135 +.. 1.136 1.137 1.138