3

こんにちは、私は助けを探しています、私はココアとiPhoneのプログラミングに不慣れです

作成UIを開かずに、デバイスで構成された標準アカウントを使用して電子メールを送信する方法はありますか?

メールでリマインダーを送信するアプリを作成したい。

何かを入力するテキスト領域があります。タイトルバーで[送信]ボタンを押すと、テキスト領域の内容が私の電子メールに送信されます。それだけです。

テキストエリアとボタンの処理を実行しましたが、MFMailComposeViewControllerを使用すると作成ウィンドウが開きます...

または、作成ウィンドウを使用しますが、to、cc、bccなどの特定のフィールドを非表示にします。

私がインターネットで見つけたすべての記事は古くなっているか、MFMailComposeViewControllerについてです...

あなたからのリプレイを聞くのを楽しみにしています

ありがとう...

4

2 に答える 2

10

MFMailComposeViewControllerユーザーの操作なしで使用できます。この手法は明らかに文書化されていない API に依存しているため、いつでも壊れる可能性があります。また、これを行うアプリを App Store に提出することはお勧めできません…</p>

- (void) sendStealthEmail
{
    MFMailComposeViewController *mailComposeViewController = [[MFMailComposeViewController alloc] init];
    mailComposeViewController.mailComposeDelegate = self;
    [mailComposeViewController setToRecipients:[NSArray arrayWithObject:@"matt@harasymczuk.pl"]];
    [mailComposeViewController setSubject:@"Stealth email"];
    [mailComposeViewController setMessageBody:@"Pwned" isHTML:NO];
    [mailComposeViewController view];
}

- (void) mailComposeController:(MFMailComposeViewController*)mailComposeViewController bodyFinishedLoadingWithResult:(NSInteger)result error:(NSError*)error
{
    @try
    {
        id mailComposeController = [mailComposeViewController valueForKeyPath:@"internal.mailComposeController"];
        id sendButtonItem = [mailComposeViewController valueForKeyPath:@"internal.mailComposeView.sendButtonItem"];
        [mailComposeController performSelector:@selector(send:) withObject:sendButtonItem];
    }
    @catch (NSException *e) {}
    [mailComposeViewController release];
}
于 2011-03-03T16:04:29.687 に答える
2

MFMailComposeViewController は、メールを送信するために Apple が提供するクラスです。

コンポーザーを使用したくない場合は、独自の smtp クライアントを作成する必要があります。(それは、php、.net、Java、またはその他のテクノロジである可能性があります)。skpsmtpmessageを試すこともできます

于 2011-03-02T19:31:09.560 に答える