Wednesday, October 10, 2012

Send Email with Image Attcahment in iPhone


-(void)sendEmail
{
    
    
    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)
    {
        if ([mailClass canSendMail])
        {
            [self displayComposerSheet];
        }
        else
        {
            UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Error!!" message:@"Device not configured to send mail." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil ];
            [alert show];
            [alert release];
        }
    }
    
}

-(void)displayComposerSheet
{
    if(EmailViewControllerObj==Nil)
        EmailViewControllerObj = [[EmailViewController alloc] init];
    [_glView addSubview:EmailViewControllerObj.view];
    EmailViewControllerObj.view.backgroundColor=[UIColor clearColor];
    picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
    [picker setSubject:@""];
NSArray *toRecipients = [NSArray arrayWithObject:@"abc@xyz.com"];
    NSArray *ccRecipients = [NSArray arrayWithObjects:@"abc@xyz.com",nil];
[picker setToRecipients:toRecipients];
    [picker setCcRecipients:ccRecipients];
    
    
    NSData *myData = UIImagePNGRepresentation(YOURIMAGE);
    [myData writeToFile:@"emailImage.png" atomically:YES];

    [picker addAttachmentData:myData mimeType:@"image/png" fileName:@"emailImage.png"];
    
    
    // Fill out the email body text
    NSString *emailBody = @"Text on Email Body";
    [picker setMessageBody:emailBody isHTML:NO];
    
    
    [EmailViewControllerObj presentModalViewController:picker animated:YES];
    [picker release];
    
    
    
    
}

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    switch (result)
    {
        case MFMailComposeResultCancelled:
            NSLog(@"Result: Mail sending canceled");
            break;
        case MFMailComposeResultSaved:
            NSLog( @"Result: Mail saved");
            break;
        case MFMailComposeResultSent:
        {
            // NSLog( @"Result: Mail sent");
            
        }
            break;
        case MFMailComposeResultFailed:
            NSLog( @"Result: Mail sending failed");
            break;
        default:
            NSLog( @"Result: Mail not sent");
            break;
    }
[EmailViewControllerObj dismissModalViewControllerAnimated:YES];
    [EmailViewControllerObj.view removeFromSuperview];
}

No comments:

Post a Comment