2

次のコードを使用してメールを送信します。

- (IBAction)sendMailPressed:(id)sender
{
    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)
    {
        // We must always check whether the current device is configured for sending emails
        if ([mailClass canSendMail])
        {
            [self displayComposerSheet];
        }
        else
        {
            [self launchMailAppOnDevice];
        }
    }
    else
    {
        [self launchMailAppOnDevice];
    }
}

// Displays an email composition interface inside the application. Populates all the Mail fields.
-(void)displayComposerSheet
{
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;


    [picker setSubject:self.strMailSubject];

    // Attach pdf to the email
    NSURL *urlToLoad = [[NSBundle mainBundle] URLForResource:self.strSorce withExtension:self.strExtention];
    NSData *myData = [NSData dataWithContentsOfURL:urlToLoad];
    [picker addAttachmentData:myData mimeType:@"application/pdf" fileName:[NSString stringWithFormat:@"%@.%@", self.strSorce, self.strExtention]];

    //  [self presentModalViewController:picker animated:YES];
    [[Singleton sharedInstance] pushModalViewController:picker whereCurrentController:self animated:YES];
    [picker release];
}


// Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation.
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    // Notifies users about errors associated with the interface
    switch (result)
    {
        case MFMailComposeResultCancelled:
            break;
        case MFMailComposeResultSaved:
            break;
        case MFMailComposeResultSent:

            break;
        case MFMailComposeResultFailed:
            break;
        default:
            break;
    }

    [[Singleton sharedInstance] popModalViewControllerAnimated:YES];
}


// Launches the Mail application on the device.
-(void)launchMailAppOnDevice
{
    NSString *recipients = [NSString stringWithFormat:@"mailto:&subject=%@", self.strMailSubject];

    NSString *email = [NSString stringWithFormat:@"%@", recipients];
    email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
}

そして、私はこの見解を得る: ここに画像の説明を入力してください

しかし、私はこのビューが必要です(画像ではなく、文字列からのみに注意してください)。

From文字列を表示する方法がわかりません

ここに画像の説明を入力してください

4

5 に答える 5

2

コードでこれを使用できsetCcRecipients:ます。

于 2013-01-04T11:16:25.877 に答える
0

複数のメール アカウントが追加されている場合、複数のアカウントから送信者を選択するために、from フィールドが表示されます。

于 2014-03-12T12:08:21.697 に答える
0

おそらくセキュリティ上の理由から、MFMailComposeViewController の From: フィールドをプログラムで設定する方法はありません。デバイスの所有者は、デバイスに登録されているアカウントを制御できるため、From: フィールドに何を含めることができるかを制御できます。

From: フィールドは、デバイスに複数の電子メール アカウントが設定されている場合にのみ表示されます。そのフィールドにより、ユーザーはどのアカウントから送信するかを選択できます。デバイスにアカウントが 1 つしか存在しない場合、それは表示されません (どのアカウントが使用されているかは「言うまでもありません」)。

于 2015-08-22T21:56:33.540 に答える