0

私のアプリケーションでは、MFMailComposer を使用して電子メールを送信できます。iPhoneにGmailアカウントがあり、アプリを使用してメールを送信している場合、他の人にメールを送信できるとします

しかし、iPhone に yahoo アカウントがあり、アプリを使用してメールを送信している場合、メールを送信できないとします。

MFMailComposer が gmail アカウントのみを使用しているか、m コードに何か問題があるかはわかりません。

このために私を助けてください。

以下は私のコードです:

-(void)SENDEMAIL
{
    if ([MFMailComposeViewController canSendMail]) 
    { 
        MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init]; 
        mailComposer.mailComposeDelegate = self; 
        NSArray* arr = [[dictUser valueForKey:@"recipients"] componentsSeparatedByString:@","];
        NSLog(@"mailcomporeci%@",dictUser);
        NSLog(@"arr:%@",arr);
        [mailComposer setToRecipients:arr]; 

        //[mailComposer setSubject:[NSString stringWithFormat:@"Scheduled Email %@",arr]];
        [mailComposer setSubject:@"Scheduled Email"];
        [mailComposer setMessageBody:[dictUser objectForKey:@"message"] isHTML:NO];
        mailComposer.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
        [self.tabBarController presentModalViewController:mailComposer animated:YES]; 
        [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(hackMail:) userInfo:mailComposer repeats:NO];
         }
     }

-(void)hackMail:(NSTimer*)theTimer {
    MFMailComposeViewController *mailController = theTimer.userInfo;
    UIBarButtonItem *sendBtn = mailController.navigationBar.topItem.rightBarButtonItem;
    id targ = sendBtn.target;
    [targ performSelector:sendBtn.action withObject:sendBtn];
}

#pragma mark Mail Compose Delegate Methods 
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {  

    switch (result) 
    { 
        case MFMailComposeResultCancelled: 
        {
            break; 
        }
        case MFMailComposeResultSaved: 
        {
            break; 
        }
        case MFMailComposeResultSent:
        {
            break; 
        }
        case MFMailComposeResultFailed: {  

            break; 
        } 

        default:  
            break; 
    } 

    [self.tabBarController dismissModalViewControllerAnimated:YES];
}
4

1 に答える 1

1

試してみて、結果を確認してください。

if([MFMailComposeViewController canSendMail]){

[self presentModalViewController:mailController animated:YES];

}

メールを送信するためのアカウントがデバイスに設定されていない可能性があります。

于 2012-06-07T08:22:43.823 に答える