Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MFMailComposeViewController canSendMail returns YES but not sending mail in iOS

The following is my code to send an attachment in a mail. This works fine. I am able to send mails but I don't always receive the mails.

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

// Set the subject of email
[picker setSubject:@"My data file"];

// Add email addresses

[picker setToRecipients:[NSArray arrayWithObjects:emailId, nil]];


// Fill out the email body text
NSString *emailBody = @"Hello, \n Please find the data from the iOS app in the attachments.\n\n Thank you.\nMy Team.";

// This is not an HTML formatted email
[picker setMessageBody:emailBody isHTML:NO];

// Create NSData object from file
NSData *exportFileData = [NSData dataWithContentsOfFile:filePath];

// Attach image data to the email
[picker addAttachmentData:exportFileData mimeType:@"text/csv" fileName:  [self.CSVNameTextField text]];


// Show email view

if ([MFMailComposeViewController canSendMail]) {

    [self presentModalViewController:picker animated:YES];
}
like image 228
Nik Avatar asked Jan 14 '23 19:01

Nik


1 Answers

After you send the Mail with your App go to the Mail-Software on your iPhone, you will most likely find the mail in the Outbox.

Cause the MFMailComposeViewController will just forward the Mail to the Mail-Software and it doesn't care what happens next to the message. So it's up to your Mail-Software how and when the Outbox will be updated.

like image 129
xapslock Avatar answered Jan 19 '23 10:01

xapslock