2013-04-03 71 views
-2

我用下面的代碼的電子郵件按鈕問題的點擊發送電子郵件

- (IBAction)email:(id)sender { 
    if ([MFMailComposeViewController canSendMail]) { 

     MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; 
     mailViewController.mailComposeDelegate = self; 
     [mailViewController setSubject:@"Subject Goes Here."]; 
     [mailViewController setMessageBody:@"Your message goes here." isHTML:NO]; 

     [self presentModalViewController:mailViewController animated:YES]; 
     [mailViewController release]; 
    } else { 
     NSLog(@"Device is unable to send email in its current state."); 
    } 
} 

什麼即時做錯你能PLZ告訴我

非常感謝你:)

+1

什麼指示做你有這是錯的?你的代碼不工作的方式是什麼? – David

+0

請告訴我們你的環境是什麼,你看到的是什麼等,以及你爲什麼認爲(或知道)它已經壞了。 – Damo

回答

2

沒有你進口這個 ?

#import <MessageUI/MessageUI.h> 
#import <MessageUI/MFMailComposeViewController.h> 

使用了這種委派方法嗎?

MFMailComposeViewControllerDelegate 

它很簡單

0

.h文件:

#import <MessageUI/MessageUI.h> 

,並使用MFMailComposeViewControllerDelegate委託

.m文件:

// Method : 

-(void)sendMailto:(NSString*)to WithSubject:(NSString*)subject withBody:(NSString*)body 
{ 
    if ([MFMailComposeViewController canSendMail]) 
    { 
     MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
     mailer.mailComposeDelegate = self; 
     [mailer setSubject:subject]; 

     NSArray *toRecipients = [NSArray arrayWithObjects:to, nil]; 
     [mailer setToRecipients:toRecipients]; 

     NSString *emailBody = body; 
     [mailer setMessageBody:emailBody isHTML:NO]; 

     [self presentModalViewController:mailer animated:YES]; 
    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Fail !" message:@"Please configure your Mail application of device with your email id" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
     [alert show]; 
     [alert release]; 
    } 
} 



- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{ 
    switch (result) 
    { 
     case MFMailComposeResultCancelled: 
      NSLog(@"Mail cancelled"); 
      activityView.hidden = YES; 
      break; 

     case MFMailComposeResultSaved: 
      NSLog(@"Mail saved"); 
      activityView.hidden = YES; 
      break; 

     case MFMailComposeResultSent: 
      NSLog(@"Mail sent"); 
      activityView.hidden = YES; 
      UIStoryboard * myStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
      CustomerAccountViewController *custAcnt = [myStoryboard instantiateViewControllerWithIdentifier:@"customerAcnt"]; 
      custAcnt.btnID = 1; 
      [self.navigationController pushViewController:custAcnt animated:YES]; 
      break; 

     case MFMailComposeResultFailed: 
      NSLog(@"Mail failed"); 
      activityView.hidden = YES; 
      break; 

     default: 
      NSLog(@"Mail not sent"); 
      activityView.hidden = YES; 
      break; 
    } 
    [self dismissModalViewControllerAnimated:YES]; 
} 

// Call On Button Click 

- (IBAction)btnProceedClicked:(id)sender 
{ 
    [self sendMailto:@"[email protected]" WithSubject:@"Email Subject" withBody:@"Your Mail Body"]; 
}