Search code examples
iosxcodemessageui

Sending eMail to self using iOS.


I have worked with MFMailComposeViewController via messageUIFramework. I have a case where I have to send email to self. How do i add the "from" address MFMailComposeViewController delegate? any suggestions?


Solution

  • How to send an email in-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];
    }
    

    Don't forgot

    1. to add a button with IBAction = sendMail
    2. to import MessageUI.framework
    3. add delegate in your .h file MFMailComposeViewControllerDelegate