2011-07-28 10 views
2

Mail.appプラグインの送信メッセージのto、ccおよびbccフィールドを変更する方法を知りましたか?私はヘッダーファイルを調べて、メッセージの受信者のリストを取得するために必要なことを正確に把握しようとしています。それらを変更する機能があります(特に、一部の受信者を削除し、残りの受信者をbccされた)。Mail.appプラグインでto/cc/bccフィールドをプログラムで変更して変更する

注:これを行う方法を調べるには、どこを調べる必要があるのか​​知っていますが、これに時間を費やしました。これを行うさまざまなクラスがたくさんあり、推測の必要量は重要ではありません。私は誰かが過去にすでにこれを通過し、重複した努力から私を救うことを望んでいるだけです。

答えて

1

メッセージの作成に使用するウィンドウは、MailDocumentEditorで、これはDocumentEditorから継承されています。 DocumentEditorには、HeadersEditorオブジェクトである_headersEditorというインスタンス変数があります。

HeadersEditorには、toto、cc、bccフィールドのインスタンス変数があり、それぞれ_toField、_ccField、_bccFieldという名前が付けられています。これらはAddressTextFieldのインスタンスです。

AddressTextFieldに入力されたアドレスを取得する方法があります。あなたがメールに精通しているなら、ここにはいくつかの異なる方法でアドレスが表示されます。いくつかはプレーンテキストアドレスだけで、いくつかはアドレス帳エントリ用のトークンです(名前を持つトークンとして表示されるため、右クリックして電子メールアドレスを取得できます)。 NSMutableArray * s _stringsWithNoRecordsおよび_stringsAwaitingRecordsのアクセサ、およびNSMutableDictionary * _recordsForStringsを作成できます。

ただし、これらのフィールドのアドレスを設定するには、これらのフィールドに必要な電子メールアドレスをinitTextCell:(NSString *)を使用してNSCellを作成します。次に、AddressTextFieldでsetCell:メソッドを呼び出します。これにより、そのフィールドの内容がNSCellのNSStringに置き換えられます。

+0

注:先に入力したアドレスを取得することについては早すぎると言いました。 _stringsWithNoRecordsを取得すると、プレーンテキストの電子メールアドレスが取得されます(最初にドラフトを保存するコマンド+ sを実行したと仮定して)が、重複することがあります。トークン化された電子メールアドレス(すなわち、それが認識するもの)も取得しません。さらに、_stringsAwaitingRecordsと_recordsForStringsのどちらも、私には(少なくともLionでは)どんなコンテンツも与えてくれません。私はこれについてもっと知っているときに答えを更新します。ただし、誰に送信しているのかわかっている場合は、setCell:を使用してAddressTextFieldの内容を設定できます。 – Aaron

+0

更新:私は文字列として受信者のアドレスを取得する方法を考え出しました! toRecipients、ccRecipients、およびbccRecipientsのメソッドを持つMessageEditorでbackEndメソッドを呼び出してください。これらはMessageAddresseeオブジェクトのNSArraysであり、そのアドレスメソッドはNSStringアドレスを与えます。 – Aaron

関連する問題