2012-07-23 72 views

回答

7

如何在APP中發送電子郵件?

- (IBAction)sendMail:(id)sender { 
    if ([MFMailComposeViewController canSendMail]) 
    { 
     MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 

     mailer.mailComposeDelegate = self; 

     [mailer setSubject:@"Message Pro"]; 

     //Destination adress 
     NSArray *toRecipients = [NSArray arrayWithObjects:@"your adress", nil]; 
     [mailer setToRecipients:toRecipients]; 

     //Attachement Object 
     UIImage *myImage = [UIImage imageNamed:@"image.jpeg"]; 
     NSData *imageData = UIImagePNGRepresentation(myImage); 
     [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"mobiletutsImage"]; 

     //Message Body 
     NSString *emailBody = @"message body"; 
     [mailer setMessageBody:emailBody isHTML:NO]; 

     [self presentModalViewController:mailer animated:YES]; 

     [mailer release]; 
    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure" 
                 message:@"Your device doesn't support the composer sheet" 
                 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: you cancelled the operation and no email message was queued."); 
      break; 
     case MFMailComposeResultSaved: 
      NSLog(@"Mail saved: you saved the email message in the drafts folder."); 
      break; 
     case MFMailComposeResultSent: 
      NSLog(@"Mail send: the email message is queued in the outbox. It is ready to send."); 
      break; 
     case MFMailComposeResultFailed: 
      NSLog(@"Mail failed: the email message was not saved or queued, possibly due to an error."); 
      break; 
     default: 
      NSLog(@"Mail not sent."); 
      break; 
    } 

    // Remove the mail view 
    [self dismissModalViewControllerAnimated:YES]; 
} 

不要忘記

  1. 添加一個按鈕與IBAction = Sendmail的
  2. 導入MessageUI.framework
  3. 附加委託在.h文件中MFMailComposeViewControllerDelegate
0

MFMailComposeViewController爲您指定了「發件人」地址(當用戶獲得撰寫郵件視圖時,他們可以覆蓋他們的任何配置郵件帳戶)。你,程序員,不必擔心獲取/設置「發件人」地址。