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

nakai email@hidden
2010年 8月 24日 (火) 16:36:56 JST


すみません。
記述方法を変更しました。
再送します。

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 メーリングリストの案内