[Armadillo:05742] Re: メール送信について

nakai email@hidden
2010年 8月 27日 (金) 13:26:12 JST


nakaiです。

base64でのエンコードは次のようにします。
$ base64 test.txt
すると標準出力にエンクリプションされたデータが出力されます。
ファイル化する場合は、
$ base64 test.txt > file.dat
何かのファイルに追記する場合は、
$ base64 test.txt >> body.dat
などのようにします。

armadillo側にはbase64が入っていないので、
debianのパッケージから取得すると試せると思います。
(atmark-distに入っているかは調べていません。)

$ dpkg -S base64
coreutils: /usr/bin/base64

coreutilsに入っているみたいです。



(2010/08/25 21:02), Aspect wrote:
>   斉藤です。 nakaiさま
> 
> いつもありがとうございます。
> Armadillo-240の場合、smtpclient_main.c の532行目が、該当箇所のようなので
> コメントアウトしてmake してみました。 これでよいのでしょうか?
> 
> とりあえず
> cat test.txt | mail email@hidden -s "Subject" -S smtp.provider -H a240
> でtest.txt を本文としたメールを送ることはできました。
> 
> base64エンコードのあたりがまだよく理解できたいませんが、参考のページを参
> 照しながら
> 勉強してみます。
> 
> ありがとう、ございました。
> 
>> nakaiです。
>>
>> デフォルト状態のsmtpclient(mail)では、
>> ファイルを添付させることができません。
>>
>> 次のようなパッチを当てたものだと可能になります。
>>
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> diff --git a/user/smtpclient/smtpclient_main.c b/user/smtpclient/smtpclient_main.c
>> index bc2316f..ff17d97 100644
>> --- a/user/smtpclient/smtpclient_main.c
>> +++ b/user/smtpclient/smtpclient_main.c
>> @@ -529,7 +529,7 @@ int main(int argc, char **argv)
>>           fprintf(sfp, "Content-Transfer-Encoding: quoted-printable\r\n");
>>       }
>>
>> -    fprintf(sfp, "\r\n");
>> +    //fprintf(sfp, "\r\n");
>>       fflush(sfp);
>>
>>       /*
>>
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> この修正により、メールヘッダー部分とボディー部分の空行を削除しているため、
>> ボディーを挿入する前には常に空行を入れる必要があります。
>>
>>
>> メールを送る場合は、次のように行います。
>>
>> まず、以下のようなファイルを準備します。
>>
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> [email@hidden (ttymxc1) /home/ftp/pub]# cat body
>> Content-Type: multipart/mixed;
>>    boundary="------------050300020102010002000200"
>>
>> This is a multi-part message in MIME format.
>> --------------050300020102010002000200
>> Content-Type: text/plain; charset=ISO-2022-JP
>> Content-Transfer-Encoding: 7bit
>>
>> attached file: test.txt
>>
>> --------------050300020102010002000200
>> Content-Type: text/plain;
>>    name="test.txt"
>> Content-Transfer-Encoding: base64
>> Content-Disposition: attachment;
>>    filename="test.txt"
>>
>> QXJtYWRpbGxvIFNlcmllcyBGZWF0dXJlcw0KDQogICAgKiBIaWdoIFBlcmZvcm1hbmNlIC8g
>> TG93IHBvd2VyIGNvbnN1bXB0aW9uDQogICAgICBUaGUgZW1wbG95ZWQgQVJNIGNvcmUgQ1BV
>> cyBwcm92aWRlIHBlcmZvcm1hbmNlIHdpdGhvdXQgaGVhdCBhbmQgdGhlIG5lZWQgZm9yIGEg
>> ZmFuLg0KICAgICogTGludXggU3VwcG9ydA0KICAgICAgRW1wbG95aW5nIExpbnV4IChrZXJu
>> ZWxzIDIuNCBhbmQgMi42KSBhcyB0aGUgc3RhbmRhcmQgb3BlcmF0aW5nIHN5c3RlbSBwcm92
>> aWRlcyBhY2Nlc3MgdG8gcmljaCBzb2Z0d2FyZSByZXNvdXJjZXMgYW5kIHByb3ZlbiBzdGFi
>> aWxpdHkuDQogICAgKiBOZXR3b3JrIFJlYWR5DQogICAgICBXaXRoIHRoZSBjb21iaW5hdGlv
>> biBvZiB0aGUgc3RhbmRhcmQgTEFOIGludGVyZmFjZSAoMTBCQVNFLVQvMTAwLUJBU0UtVFgp
>> IGFuZCBMaW51eCdzIFRDUC9JUCBwcm90b2NvbCBzdGFjaywgbmV0d29yayByZWFkeSBkZXZp
>> Y2VzIGNhbiBiZSBlYXNpbHkgZGV2ZWxvcGVkLg0KICAgICogU21hbGwgZm9ybSBmYWN0b3IN
>> CiAgICAgIFdpdGggYm9hcmRzIHRoZSBzYW1lIHNpemUgYXMgYSBmbG9wcHkgZGlzYyBhdCB0
>> aGUgYmlnIGVuZCBhbmQgaGFsZiB0aGUgc2l6ZSBvZiBhIGJ1c2luZXNzIGNhcmQgYXQgdGhl
>> IHNtYWxsIGVuZCwgQXJtYWRpbGxvIGFyZSBhIHRydWx5IHNtYWxsIGZvcm0gZmFjdG9yIHNv
>> bHV0aW9uLg0KDQpMaW5rcw0KDQogICAgKiBBcm1hZGlsbG8gT2ZmaWNpYWwgU2l0ZTogaHR0
>> cDovL2FybWFkaWxsby5hdG1hcmstdGVjaG5vLmNvbQ0KICAgICogQXRtYXJrIFRlY2hubywg
>> SW5jLjogaHR0cDovL3d3dy5hdG1hcmstdGVjaG5vLmNvbQ0KDQoNCg==
>> --------------050300020102010002000200--
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>
>> 本文は、
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> attached file: test.txt
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> のみです。
>>
>> 添付するファイルは、
>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> Content-Type: text/plain;
>>    name="test.txt"
>> Content-Transfer-Encoding: base64
>> Content-Disposition: attachment;
>>    filename="test.txt"
>>
>> QXJtYWRpbGxvIFNlcmllcyBGZWF0dXJlcw0KDQogICAgKiBIaWdoIFBlcmZvcm1hbmNlIC8g
>>>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> です。
>> 添付ファイル"test.txt"というものを送ろうとしています。
>> 実際のtest.txtをbase64でエンコードしたものが"QXJtYW..."です。
>>
>>
>> コマンドは次のようにします。
>> cat body | ./mail -s "file transfer: test" --smtp-host SMTPサーバ 送り先@ドメイン
>>
>> 以下を参考にしているのでご覧ください。
>> http://www.perl-labo.org/sendmail/filetemp/




armadillo メーリングリストの案内