2

I am trying to send an email using MFMailComposeViewController but somehow it won't work. When I don't send an image everything works just fine. But if I try to add photo there is the following error:

-(IBAction)gonder:(id)sender{
  MFMailComposeViewController *mailComposeViewController = [[MFMailComposeViewController alloc] init];
  mailComposeViewController.mailComposeDelegate = self;

  [mailComposeViewController setSubject:@"deneme"];
  UIImage *savedImage = self.image;
  NSData *imageData = UIImagePNGRepresentation(savedImage);
  [mailComposeViewController addAttachmentData:imageData mimeType:@"image/png" fileName:@"photo"];
  NSString *emailBody = @"my text";
  [mailComposeViewController setMessageBody:emailBody isHTML:NO];

  [emailBody release];
  NSArray *alicilar=[[NSArray alloc]initWithObjects:@"mymailadress.com", nil];
  [mailComposeViewController setToRecipients:alicilar];

  [mailComposeViewController view];
}

- (void) mailComposeController:(MFMailComposeViewController*)mailComposeViewController bodyFinishedLoadingWithResult:(NSInteger)result error:(NSError*)error
{
  @try
  {
    id mailComposeController = [mailComposeViewController valueForKeyPath:@"internal.mailComposeController"];
    id sendButtonItem = [mailComposeViewController valueForKeyPath:@"internal.mailComposeView.sendButtonItem"];
    [mailComposeController performSelector:@selector(send:) withObject:sendButtonItem];
  }
  @catch (NSException *e) {}
  [mailComposeViewController release];
}

Those are the errors:
2012-02-14 16:19:58.322 il[653:307] *** ERROR: FigCreateCGImageFromJPEG returned -12905. Input (null) was 444585 bytes.

Ilanchezhian
  • 17,426
  • 1
  • 53
  • 55
ali10
  • 75
  • 1
  • 8
  • [Detailed answer is here](http://stackoverflow.com/questions/1527351/how-to-add-an-uiimage-in-mailcomposer-sheet-of-mfmailcomposeviewcontroller-in-ip) – Hemang Jan 16 '13 at 13:20

2 Answers2

1

Is the image you are trying to attach very large? It may be an out of memory problem.

Peter Sarnowski
  • 11,900
  • 5
  • 36
  • 33
  • i am using my phone cams to capture image. and i am trying attach it. how can i minimise this image? – ali10 Feb 14 '12 at 15:41
1

i think the issue is the way you create the data object. try this:

NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(savedImage)];

also consider maybe using JPEG instead of PNG, it's quite a bit faster.

Dan Reed
  • 54
  • 6