OMEMailDeliveryマニュアル
わきもとしんや/2004-11-23
基本的には、JAVA版の、OME_SendMail?と同じ機能を、Objective-Cで実現することを目指して、OMEMailDeliveryというアプリを作ってみました。(2004年10月のユーザーリリースに含まれております。)
使い方は、基本的に、OME_SendMail?と同じです。
1.特長
- コンパクトに出来ています。
- Sender_Info.txtの、1行目の送信者名、2行目の送信者のメールアドレス、および3行目のsmtpサーバ名は、送信メールに反映されます。
ただし、OME_MailWriter?によって作成されたメールのドラフト(upload-?.wmail)のヘッダ部に、"From: "や"FromName?: "が記述されている場合には、Sender_info.txtより、ドラフトの方が優先されます。 - Behavior_Info.txtの、OneLineBytes?オプションも機能します。ただし、デフォルトは、72に設定しております。また、禁則や英単語を刻まないようなインテリジェントなプロセスもかませています。
- 添付ファイルも送付できます。添付ファイルの指定方法として、
Attachment: ~/Documents/てすと.txt
というように、ホームディレクトリを~(ティルダ)で表示することが出来るようにし、さらに添付ファイル名には日本語名が使えるようにしました。 - jp.mac-ome.sendmail.logに送信ログが記録されます。
- 送信メールのヘッダに、
X-Mailer-App: OMEMailDelivery? for MacOSX (Build Date: Sun, 17 Oct 2004 )
というような1行が追加されるようにしました。
2.問題点
- Sender_Info.txtの4行目の、SMTP AUTHの設定は無視されます。したがって、SMTPサーバとしては、SMTP AUTHを必要としないサーバを指定しておく必要があります。
- Behavior_Info.txtの、SMTPDebugMode?オプションは、機能しません。無効です。
- 送信するメーッセージの本文に「全角ティルダ(〜)」が含まれている場合、送信メールが、charset=CP932で送信されます。それ以外の場合には、charset=ISO-2022-JPで送信されます。
一部の受信メールソフトによっては、ISO-2022-JP以外の文字コードは受け付けない仕様となっているものもありますので、メール本文には、「全角ティルダ(〜)」を使わないようにすることをお薦めします。
3.プログラム設計の基本的考え方
- OMEMailDelivery?の使い方や機能は、可能な限り、OME_SendMail?と同じになるように設計しました。
- Cocoaに、Messageというフレームワークがあり、その中に、NSMailDelivery?というクラスがあり、そこに
+ (BOOL)deliverMessage: (NSAttributedString *)messageBody headers: (NSDictionary *)messageHeaders format: (NSString *)messageFormat protocol: (NSString *)deliveryProtocol;
というクラスメソッドがありますので、これを使っております。 - このクラスメソッドは、SMTPサーバとして、com.apple.internetconfig.plistに記録されているSMTPHostを使う仕様になっているようですので、OMEMailDelivery?は、Sender_Info.txtの3行目のsmtpサーバ名を、com.apple.internetconfig.plistに書き写す処理を内部で行う仕様としており、これによってSMTPサーバを選択・指定するようにしております。
Mail.appなどほかのメーラでは、com.apple.internetconfig.plistを引用していないようですので、これを書き換えても、ほかのメーラへの影響はないと思います。 - 上記2.(1)、(2)、(3)の問題は、Messageフレームワークの仕様に起因するもので、プログラムからは解決のしようがないように思えます。
4.注意書き
このアプリはあくまで試行版として作成したものであり、このアプリの使用に伴う一切の不具合・問題発生・損害について、アプリの作者は一切の責任を負いません。このアプリを利用しようとする人は、この条件を了承の上、お使いください。