/[suikacvs]/messaging/manakai/doc/introduction.ja.html
Suika

Contents of /messaging/manakai/doc/introduction.ja.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download) (as text)
Mon Apr 1 09:14:50 2002 UTC (23 years, 4 months ago) by wakaba
Branch: MAIN
Changes since 1.2: +199 -14 lines
File MIME type: text/html
*** empty log message ***

1 wakaba 1.1 <?xml version="1.0" encoding="iso-2022-jp"?>
2     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4     <html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
5     <head>
6     <title xml:lang="en">Message::* Perl modules</title>
7     <link rel="index" href="./" />
8     <?xml-stylesheet href="/s/simpledoc"?>
9     <link rel="stylesheet" href="/s/simpledoc" />
10     <link rev="made" href="mailto:w@suika.fam.cx" />
11     <link rel="copyright" href="/c/pd" title="Public Domain." />
12     <meta name="author" content="��t" />
13     <meta name="keywords" content="Perl, module, pm, Message, RFC 822, RFC 2822, RFC 1036, son-of-RFC 1036, MIME, Usefor, HTTP, CGI, header, field" />
14     </head>
15     <body>
16     <h1>Message::* Perl modules</h1>
17    
18     <h2>�͂��߂̂͂��߂�</h2>
19    
20     <p>���Ƃ��� Perl �ŏ����ꂽ CGI script, ������f���‚Ȃ񂩂ɂ́A
21     ����Ȃ�����Ȃ� code ���ڂ��Ă����肵�܂��B</p>
22    
23     <pre class="application-x-perl">
24     jcode'convert(*from, "jis");
25     jcode'convert(*subject, "jis");
26     jcode'convert(*message, "jis");
27     open (MAIL, "| $sendmail");
28     print MAIL "From: $mail ($from)\n";
29     print MAIL "To: $mailto\n";
30     print MAIL "Subject: $subject\n";
31     print MAIL "\n";
32     print MAIL "$message";
33     print MAIL "\n";
34     close (MAIL);
35     </pre>
36    
37     <p>����ł͎��F�����ǂ��Ȃ��ł����A��������C�����ԈႦ���
38     �ςȃ��b�Z�[�W�𑗐M���Ă��܂��܂��B
39     (�M�҂͂�������イ�͂܂��Ă܂���:-)
40     (����ɑ����� code �ł́A
41     HTML �ł̃N���X�T�C�g�X�N���v�e�B���O (CSS) ����
42     �ގ��̖��ւ̑Ώ������Ă��܂���B)</p>
43    
44     <p>�I�u�W�F�N�g�w����������Ď��̂悤�Ȋ����Ń��b�Z�[�W��
45     �\���������Ƃ���ł��B</p>
46    
47     <pre class="application-x-perl">
48     use Message::Entity;
49     my $msg = new Message::Entity;
50     my $hdr = $msg-&gt;header;
51     $hdr-&gt;add ('From')-&gt;add ('me@bar.example');
52     $hdr-&gt;add ('To')-&gt;add ('foo@bar.example', display_name =&gt; 'Mr. foo');
53     $hdr-&gt;add ('Subject' =&gt; $subject);
54     $msg-&gt;body ($body);
55    
56 wakaba 1.2 # $smtp-&gt;send �� SMTP �ő��M���� method �Ɖ���B
57     $smtp-&gt;send ($msg);
58 wakaba 1.1 </pre>
59    
60     <p><a href="http://www.cpan.org/" xml:lang="en">CPAN</a> ��T���ƁA
61     ����Ɏ����悤�Ȃ��Ƃ��ł������ȃ��W���[���͂���悤�ł����A
62     ���ۂɎg���Ă݂�ƁA�^����l�ɂ���Ă� <a href="urn:ietf:rfc:822">RFC 822</a>/<a href="urn:ietf:rfc:2822">2822</a> �Ɉᔽ����
63     ���ʂ��o�͂���Ȃǂ̕s��������܂��B (�Ⴆ�΍��̗��
64     <code xml:lang="en">To:</code> �̈�Ɏg���Ă���
65     <code xml:lang="en">display_name</code> �Łu.�v���܂܂�܂����A
66     RFC 2822 �I�ɂ͐V�������b�Z�[�W�ł͌݊����̂���
67     <code xml:lang="en" class="bnf rfc2822">quoted-string</code>
68     �ɂ���K�v������܂��B���������̂܂܏o�͂���܂��B)</p>
69    
70     <p class="note">�Q�l: �u.�v�̏ꍇ�� RFC 2822 �I�ɂ͐���������
71     ����Ȃ���΂Ȃ�܂��� (�o�͂͂��ׂ��łȂ�)�A
72 wakaba 1.2 ����ȊO�̕����A�Ⴆ�ΐ��䕶�� <code class="character">ESCAPE</code> �ł������悤�ɂȂ�܂��B
73 wakaba 1.1 ������͊��S�ɊԈႢ�ł��B</p>
74     <p class="note">�Q�l: �������j�Ƃ��Ă͕s���Ȓl�̓��W���[����
75     �n���O�ɒe���ׂ��Ƃ����l����������ł��傤�B
76     �ł�����Ȃ͕̂s�ւł��B</p>
77    
78     <p>�Ƃ������ƂŁA�͂��߂͊����̃��W���[���� wrapper (���邢�͕⊮)
79     �������‚���ł������A�Ȃ񂾂������Ⴒ���Ⴕ�Ă��āA
80     ����Ȃ�ԗւ̍Ĕ����ɂȂ��Ă��ꂩ�珑���Ă݂悤�ƍl���܂����B</p>
81    
82 wakaba 1.3 <h2>���F (�Ƃ������̂��̂ł��Ȃ��B)</h2>
83 wakaba 1.1
84     <ol>
85 wakaba 1.3 <li>���\(��)�I�u�W�F�N�g�w���ł��B</li>
86     <li>RFC 822/2822 �� <code class="bnf rfc2822">group</code> �����ߏo���܂��B</li>
87 wakaba 1.1 <li><a href="urn:ietf:id:draft-ietf-usefor-msg-id-alt-00">draft-ietf-usefor-msg-id-alt-00</a> �Ɋ�Â������M�A�h���X�Ȃǂɂ�� <code class="rfc2822">Message-ID</code> �𐶐��o���܂��B</li>
88 wakaba 1.3 <li>�����R�[�h�Ɨ� (CSI) �ł��B (�A�� RFC 822 �ł���s����(��)�A
89     ASCII �݊��ł���K�v�͂���܂��B EBCDIC �Ƃ��͖����ł�:-&lt;)</li>
90     </ol>
91    
92     <h2>�e�d�l�ւ̑Ή���</h2>
93    
94     <ol>
95     <li>�d�q���C���̃��b�Z�[�W (RFC 822, RFC 2822)
96     �̑S�@�\�� (�������������) �Ή����Ă��܂��B
97     �A�����������Ȃǂ̓`�F�b�N���Ă��܂���B (MIME ��
98     <code class="mime">Content-Transfer-Encoding</code>
99     �ƈꏏ�Ɏ����\��)</li>
100     <li>�d�q�j���[�X�L�� (<a href="/uri-res/N2L?urn:ietf:rfc:1036">RFC 1036</a>,
101     <a href="spec/son-of-RFC1036">son-of-RFC1036</a>,
102     <a href="/uri-res/N2L?urn:ietf:id:draft-usefor-article-06">
103     draft-usefor-article (06)</a>) �̓��̈�̑����ɑΉ����Ă��܂��B</li>
104     <li>MIME �̖{�̕��� (body part) �ɂ͂܂��Ή����Ă��܂���B</li>
105     <li>MIME �̒lj����̈�
106     (<a href="/uri-res/N2L?urn:ietf:rfc:2045">RFC 2045</a>,
107     <code class="mime">Content-Disposition</code>) �ɑΉ����Ă��܂��B
108     �p�����[�^�[�l�g�� (<a href="/uri-res/N2L?urn:ietf:rfc:2231">RFC 2231</a>)
109     �����o�͂Ƃ��Ɏ������܂����B</li>
110     <li>MIME �������� (<code class="mime bnf">encoded-word</code>)
111     �̉�ǂɑΉ����Ă��܂�:-) �A���ʓr�ϊ��������w�肷��K�v������܂��B
112     (<a href="#code">�����R�[�h�̈���</a>�Q��)</li>
113     <li>HTTP/1.0, HTTP/1.1, CGI/1.1, CGI/1.2 �̓��̈�̂����A
114     �����ꕔ�ɑΉ����Ă��܂��B MHTML ��
115     <code class="mime">Content-Location</code> �ɂ��Ή����Ă��܂��B</li>
116     <li>���t�`���ł� RFC 822/<a href="urn:ietf:rfc:1123">1123</a>,
117     <a href="urn:ietf:rfc:733">RFC 733</a>, asctime, ISO 8601 (HTML)
118     �ȂǂɑΉ����Ă��܂��B</li>
119     </ol>
120    
121     <h2>��������</h2>
122    
123     <ol>
124     <li>�ގ����W���[��(��)�̂悤�ɁA�t�@�C������t�@�C���E�n���h����
125     �n���ēǂݍ��܂��邱�Ƃ��o���܂���B</li>
126     <li>�傫�ȃ��b�Z�[�W�ł���C�ɓǂݍ��݁A�S�Ď�L���̈��
127     �ێ����Ă��܂��B�ł����炠�܂�傫�ȃ��b�Z�[�W�̏����ɂ�
128     �����Ă��Ȃ��ł��傤�B</li>
129     <li><code>CR</code> �� <code>LF</code> ���P�̂ŏo������ꍇ�A
130     �����������o���܂���B (<code>CRLF</code> �Ɠ����Ƃ݂Ȃ��܂��B)
131     �����̔łł̓I�v�V�����Ő���”\�ɂȂ邩������܂���B</li>
132     <li>��������ǂ������ȋ@�\����������������܂���B
133     (<a href="mailto:w@suika.fam.cx">�d�q���C��</a>�Ȃǂŋ����ĉ������B)</li>
134     <li>�e���W���[���̃I�v�V�����̌n�����܂萮������Ă��܂���B
135     (����ł��C���������Ȃ����x�ɂ͑̌n�I���Ǝv���܂��B)</li>
136     <li>������ (document) ���ǂ������ł��B</li>
137 wakaba 1.1 </ol>
138    
139     <h2>����̗\��</h2>
140    
141     <ol>
142 wakaba 1.3 <li>�d�q�j���[�X�̓��̈� (RFC 1036,
143     <a href="spec/son-of-RFC1036">son-of-RFC1036</a>,
144     draft-usefor-article) �̊��S����</li>
145     <li><del>MIME �̓��̈�̎����B</del></li>
146 wakaba 1.1 <li>�lj�/��W���̓��̈�̎����B</li>
147     <li>MIME �{�� (<code class="bnf rfc822">body</code>) �̎����B</li>
148 wakaba 1.3 <li><del>���������ϊ��̂��߂� hook �̎���?</del></li>
149 wakaba 1.1 <li>documentation�B</li>
150     <li>�g�p��̍쐬�B</li>
151     </ol>
152    
153 wakaba 1.3 <h2>�K�v�‹�</h2>
154    
155     <ol>
156     <li>perl (Perl 5.6 �ȍ~�܂���<span title="human parser">�l�ԉ�͎�</span>:-))
157     <p class="note"><code class="bnf rfc822">comment</code>
158     ��\���̂ɐ��K�\�� <code class="regex">(??{ <var>code</var> })</code>
159     ���g���Ă���̂ŁA��������ߏo����A
160     5.6 �ȍ~�̔łł���K�v������܂��B</p>
161     </li>
162     <li>Digest::MD2, Digest::MD5, Digest::SHA1
163     <p>Message-ID �̐����ɂ������g�p����ꍇ�̂݁A
164     <code>Message::Field::MsgID::MsgID</code> ���g���܂��B</p>
165     <p>����炪�p�ӂ���Ă��Ȃ��‹��ł̓G���[�ɂȂ�̂ŁA
166     (����ł�) ��L���W���[���̊Y�����������������đΏ����ĉ������B</p>
167     </li>
168     <li>�����R�[�h�ϊ�����
169     <p>���{�ꃁ�b�Z�[�W�������Ȃ�K�{�ł��傤�B
170     �ڂ�����<a href="#code">�����R�[�h�̈���</a>
171     �̏͂����Q�Ɖ������B</p>
172     </li>
173     </ol>
174    
175 wakaba 1.1 <h2>����</h2>
176    
177     <p>suika.fam.cx �� SSH account ���������̏ꍇ�A CVS �������o���܂��B</p>
178    
179     <p class="example">$ cvs -d :ext:<var xml:lang="en">username</var>@suika.fam.cx:/home/cvs -d perl/lib/Message/</p>
180    
181     <p>Web ��������o���܂��B &lt;<a href="/gate/cvs/perl/lib/Message/">http://suika.fam.cx/gate/cvs/perl/lib/Message/</a>&gt; (tarball �ňꊇ�擾���o���܂��B)</p>
182    
183     <h2>���C�Z���X</h2>
184    
185     <p>Message::* Perl modules �͎��R�\�t�g�E�F�A�ł��B
186     GNU GPL �ɏ]���ė��p�o���܂��B�ڂ����͊e�t�@�C�����䗗�������B</p>
187    
188     <h2>�Q�l����</h2>
189    
190     <ul>
191     <li><a href="spec/">�֘A����d�l�� (RFC, Internet-Draft ��)</a></li>
192     </ul>
193    
194 wakaba 1.3 <h2 id="code">�����R�[�h�̈���</h2>
195    
196     <p>�ڂ������Ƃœ���Y�܂��̂͌��Ȃ̂�(�m)�A
197     Message::* �͕��������@�Ɨ� (CSI) ��ڎw���Ď������Ă��܂��B
198     (�A�� ASCII �̂�����݂����͒f���؂��Ă��܂���:-))
199     0x00 �` 0x7F �� ASCII (�܂��� ASCII �ƌ��Ȃ��ėǂ�����) �ł���
200     �ꍇ�́A Message::* ��ʂ������ƂŃf�[�^�����邱�Ƃ�
201     �����Ǝv���܂��B</p>
202    
203     <p>(�������A RFC 822 �ȂNJe�d�l�ɏƂ炵�Đ���(�I)��
204     ����K�v������܂��B <code class="bnf rfc822">atom</code>
205     ��8�r�b�g�E�R�[�h���܂܂�Ă���Ɛ����������܂���B)
206     (�����b���A <code class="bnf rfc822">quoted-string</code>
207     �Ȃǂł�8�r�b�g���߂��Ƃ������Ƃł��B��肭�ǂ��Ă��߂�Ȃ����B)</p>
208    
209     <p>����̏�Ԃł͕����R�[�h�Ɋ֌W����ϊ������͍s���܂���B
210     �������A�t�b�N�֐����ۂ�����(��)���w�肷�邱�ƂŁA
211     �ϊ��������������܂��B</p>
212    
213     <p>�w��o����t�b�N�֐����ۂ����̂�2��ނł��B
214     <code>DECODER</code> �́A���̃��b�Z�[�W����͂��鎞
215     (<code class="perl">parse ()</code>) �ɓK�X�Ăяo����܂��B
216     <code>ENCODER</code> �́A���b�Z�[�W�Ƃ��ĕ����񉻂����
217     (<code class="perl">stringify ()</code> �Ȃ�) �ɓK�X�Ăяo����܂��B</p>
218    
219     <p>�����̊֐��́A���R�A���Y�������Ăяo�����O�Ɏw�肵�Ă���
220     �K�v������܂��B
221     <samp class="perl">Message::Entity-&gt;parse</samp> �Ȃǂ���O��
222     ��`���Ă����Ɨǂ��ł��傤�B</p>
223    
224     <pre class="example perl">
225     require Message::MIME::Charset;
226     $Message::MIME::Charset::DECODER{'*default'} = sub {jcode::euc ($_[1])};
227     $Message::MIME::Charset::ENCODER{'*default'} = sub {jcode::jis ($_[1], 'euc')};
228     </pre>
229    
230     <p>���̗�ł́A jcode.pl ��ϊ������Ɏg���܂��B
231     (�������A���� <code class="perl">require</code>
232     ����Ă���Ɖ��肵�Ă��܂��B)</p>
233     <p>�ŏ��� <code class="perl">require</code> �ŁA�ϊ�������S�����Ă���
234     <code class="perl">Message::MIME::Charset</code> ��ǂݍ��݂܂��B
235     (�������Ă����Ȃ��ƁA�ォ�����l (= ���ϊ�) ��
236     <code class="perl">*default</code> ���㏑������Ă��܂��܂��B)</p>
237    
238     <p>���� code ���g�����X�N���v�g�͓�����������{�� EUC
239     �ōs���Ɖ��肵�Ă��܂��B�ł�����A <code class="perl">DECODER</code>
240     �œ��{�� EUC �ɕϊ����܂��B</p>
241     <p>�܂��A���{�ꃁ�b�Z�[�W�ł� <code>ISO-2022-JP</code>
242     ���g���̂����K�ł�����A <code class="perl">ENCODER</code>
243     �ł� 7�r�b�g JIS �ɕϊ����Ă��܂��B</p>
244     <p>�������s���֐��́A������2�ˆȏ�^�����܂��B
245     1�–ڂ̈����͌Ăяo���� class module, ������
246     <code class="perl">$self</code> �ł��B(���̏ꍇ self �ł͂���܂���:-)
247     �ł����ʂ͕K�v�Ȃ��ł��傤�B</p>
248     <p>2�–ڂ̈����͏����Ώۂ̕�����ł��B</p>
249     <p>3�–ڈȍ~�̈����́A�lj��I�v�V�����̃n�b�V���ł��B
250     �������A���ݒlj��I�v�V�����͒�`����Ă��܂���B</p>
251     <p>�֐����Ԃ��l��(���̂Ƃ���)��‚����ł��B
252     �������I�����������ł��B�ϊ����ʂƂ��ĉ����Ȃ��Ȃ��Ă��܂�����A
253     �������󕶎����Ԃ��č\���܂���B (<code class="perl">undef</code>
254     �����󕶎���̕����]�܂����ł��傤�B)</p>
255    
256     <p>���āA��L�̗�ł́u<code>*default</code>�v�� EN/DECODER
257     ���w�肵�܂������A�����ɂ͑���� charset �����w��o���܂��B</p>
258    
259     <pre class="perl example">
260     $Message::MIME::Charset::DECODER{'iso-2022-jp'} = sub {jcode::euc ($_[1], 'jis')};
261     </pre>
262    
263     <p>�����ł́A <code>ISO-2022-JP</code> ������R�[�h�ɕϊ�����
264     ���@���`���Ă��܂��B charset �� (����сu<code>*default</code>�v
265     �͕K���������ŏ����ĉ�����!)</p>
266     <p>MIME body ��A encoded-word, RFC 2231 �̊g���p�����[�^�[�l
267     �ȂǁA charset ���w�肳��Ă��鎞�͂��� charset ���̕ϊ��֐���
268     �Ăяo����܂��B (�w�肳�ꂽ charset ���̕ϊ��֐�������`�̎��́A
269     �����������܂���B) ����ȊO�̏�ʂł́A <code>*default</code>
270     �Œ�`���ꂽ�֐����g���܂��B</p>
271    
272     <p>�Ō�ɁA���{�ꃁ�b�Z�[�W�������ۂ̗�������Ă����܂��B</p>
273    
274     <pre class="example perl">
275     <span class="comment">## jcode.pl ���g�p</span>
276     require 'jcode.pl';
277     require Message::MIME::Charset;
278     $Message::MIME::Charset::DECODER{'*default'} = sub {jcode::euc ($_[1])};
279     $Message::MIME::Charset::DECODER{'iso-2022-jp'} = sub {jcode::euc ($_[1], 'jis')};
280     $Message::MIME::Charset::DECODER{'euc-jp'} = sub {$_[1]};
281     $Message::MIME::Charset::DECODER{'shift_jis'} = sub {jcode::euc ($_[1], 'sjis')};
282     $Message::MIME::Charset::ENCODER{'*default'} = sub {
283     my $s = $_[1];
284     <span class="comment">## ���K��</span>
285     jcode::tr(\$s,
286     "\xa3\xb0-\xa3\xb9\xa3\xc1-\xa3\xda\xa3\xe1-\xa3\xfa\xa1\xf5".
287     "\xa1\xa4\xa1\xa5\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xae".
288     "\xa1\xb0\xa1\xb2\xa1\xbf\xa1\xc3\xa1\xca\xa1\xcb\xa1\xce".
289     "\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xdc\xa1\xf0\xa1\xf3\xa1\xf4".
290     "\xa1\xf6\xa1\xf7\xa1\xe1\xa2\xaf\xa2\xb0\xa2\xb2\xa2\xb1".
291     "\xa1\xe4\xa1\xe3\xA1\xC0\xA1\xA1"
292     => '0-9A-Za-z&amp;,.:;?!`^_/|()[]{}+$%#*@=\'"~-&gt;&lt;\\ ');
293     jcode::jis ($s, 'euc', 'z')
294     };
295     </pre>
296    
297     <pre class="example perl">
298     <span class="comment">## Jcode.pm ���g�p</span>
299     use Jcode;
300     require Message::MIME::Charset;
301     $Message::MIME::Charset::DECODER{'*default'} = sub {jcode::euc ($_[1])};
302     $Message::MIME::Charset::DECODER{'iso-2022-jp'} = sub {Jcode->new ($_[1], 'jis')->euc};
303     $Message::MIME::Charset::DECODER{'euc-jp'} = sub {$_[1]};
304     $Message::MIME::Charset::DECODER{'shift_jis'} = sub {Jcode->new ($_[1], 'sjis')->euc};
305     $Message::MIME::Charset::DECODER{'utf-8'} = sub {Jcode->new ($_[1], 'utf8')->euc};
306     $Message::MIME::Charset::ENCODER{'*default'} = sub {Jcode-&gt;new ($_[1], 'euc')-&gt;jis};
307     $Message::MIME::Charset::ENCODER{'utf-8'} = sub {Jcode-&gt;new ($_[1], 'euc')-&gt;utf8};
308     </pre>
309    
310     <p>Perl 5.8 �� Encode ���W���[�����g����悤�ɂȂ�΁A
311     �����Ɗy�ɂȂ�Ɗ��҂��Ă��܂��B</p>
312    
313 wakaba 1.1 <div class="navigation">
314     [<a href="/" title="���̃T�[�o�[�̎��">/</a>
315     <a href="/map" title="���̃T�[�o�[�̈ē�" rel="index">�n�}</a>
316     <a href="/search/" title="���̃T�[�o�[�̌���">����</a>]
317     <a href="http://validator.w3.org/check/referer" xml:lang="en"><img
318     src="http://www.w3.org/Icons/valid-xhtml11" id="w3c-html"
319     alt="Valid XHTML 1.1!" style="height: 31px; width: 88px" /></a>
320     <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://suika.fam.cx/~wakaba/Message-pm/introduction.ja.html" xml:lang="en">
321     <img style="width: 88px; height: 31px" id="w3c-css"
322     src="http://jigsaw.w3.org/css-validator/images/vcss"
323     alt="Valid CSS!" /></a>
324     </div>
325 wakaba 1.3 <div class="update">$Date: 2002/03/21 04:09:59 $</div>
326 wakaba 1.1 <ul class="myuri">
327     <li>&lt;URL:<a href="http://suika.fam.cx/~wakaba/Message-pm/introduction">http://suika.fam.cx/~wakaba/Message-pm/introduction</a>&gt;</li>
328     <li>&lt;CVS:<a href="http://suika.fam.cx/gate/cvs/perl/web/Message-pm/">suika.fam.cx:/home/cvs/perl/web/Message-pm/</a>&gt;</li>
329     </ul>
330     </body></html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24  
Google Analytics is used in this page; Cookies are used. 忍者AdMax is used in this page; Cookies are used. Privacy policy.