Cocoaには、Messageというフレームワークが用意されていまして、これを使うと簡単にメールが送れてしまいます。ということで使ってみましょう。
改版履歴
Cocoaには、Messageというフレームワークが用意されていまして、これを使うと簡単にメールが送れてしまいます。ということで使ってみましょう。
プロジェクトを作ったら、Project Builderの「 プロジェクト > フレームワークを追加... 」メニューを選択して、Message.frameworkを選択します。で、以下の3つのアウトレットと1つのアクションを持つクラスを作ります。
そして、ヘッダーを参照するために以下の1行をフレームワークを使うソースに書きます。
#import <Message/NSMailDelivery.h>
アクションの中身は以下のようになります。
NSString *sBody = [ bodyField string ]; // 本文 NSString *sSubject = [ subjectField stringValue ]; // タイトル NSString *sTo = [ toField stringValue ]; // 送信先 BOOL bResult; bResult = [ NSMailDelivery deliverMessage : sBody subject : sSubject to : sTo ];
各ViewからテキストをstringメソッドもしくはstringValueメソッドで取り出して、deliverMessage : subject : to : メソッドでメール送信します。パラメータは、三田とおりですが、「 本文、タイトル、送信先アドレス 」の順です。返り値は、成功したかどうかです。
日本語でも大丈夫なのかが気になるところですが、試した範囲では特に問題ないようです。アルファベットしか使っていない場合と日本語を使っている場合で、エンコード方法が異なっていましたので、含まれている文字コードの範囲を見て、エンコード方式を選んでいるものと思われます。
メールの設定は、システム環境設定の内容を参照しているようです。設定がなされているかどうかをチェックするメソッドもあります。以下のメソッドを呼んでNOが返ってきた時は、設定がなされていないことになります。
bResult = [ NSMailDelivery hasDeliveryClassBeenConfigured ];
最後に、日本語のメールを送信した時のメールヘッダーの一部を掲載しておきます。
ontent-Type: text/plain; format=flowed; charset=iso-2022-jp X-Mailer: Apple Mail (2.388) Mime-Version: 1.0 (Apple Message framework v388) Content-Transfer-Encoding: 7bit