0

ファイル/ドキュメントを電子メールの添付ファイルとして送信するアプリ内機能を受け入れる、非常にシンプルな「電子メール クライアント」を作成しようとしています。現時点では、他の電子メール機能は必要ありません (データを gmail api 呼び出しに渡して、ウェブメールでメッセージを下書きする予定です)。必要なのは、アプリケーションが有効な電子メール アプリとして認識され、電子メールの添付ファイルを送信するためのシステム コール。

これまでのところ、(AppleScript アプリではなく Xcode から) コンパイルされている限り、Mail.app の設定を別のメール アプリを使用するように構成できることがわかりましたが、テスト アプリを取得することはできませんでした。他のアプリケーションからの共有/送信機能をうまく利用してください。このメニュー項目はグレー表示されるか、エラーがスローされます (「SendMail は、既定のメール クライアントと通信する方法を認識していません。使用する別のメール アプリケーションを選択してください。」) メールまたは Outlook を使用するように構成されていない場合。その場合、正常に動作します。

電子メール送信用のこれらのシステム コールを受け入れるには何が必要ですか? 送信されたデータを取得して、そこから処理するだけです。

4

1 に答える 1

0

クライアント アプリは、mailtoURL スキームに自身を登録する必要があります。これを Info.plist に追加します。

<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>mailto: urls</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>mailto</string>
        </array>
    </dict>
</array>
</plist>

イベントを処理する必要があります。これは開始することができます:

- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
    NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
    [appleEventManager setEventHandler:self
                           andSelector:@selector(handleGetURLEvent:withReplyEvent:)
                         forEventClass:kInternetEventClass
                            andEventID:kAEGetURL];
}

- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
    NSString *link = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    /* do something with the link */
}

添付ファイルをどのように送信するのか[私には]わかりません. 共有 > Finder でメール? いずれにせよ、添付ファイルを処理するために何かを追加する必要があるかもしれません。

于 2013-04-27T02:43:40.583 に答える