Reputation: 2025
How do I set the from address in the MFMailComposeViewController
?
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"In app email..."];
[controller setMessageBody:@"To FirstName LastName: " isHTML:NO];
// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; // (NSString *) [feed valueForKey:@"email"]];
[controller setToRecipients:toRecipients];
Upvotes: 9
Views: 7111
Reputation: 5647
This is possible since iOS 11.0
Use setPreferredSendingEmailAddress(_:)
to define a preferred address which will automatically select a corresponding account if available.
From the documentation:
Sets the preferred email address to use in the From field, if such an address is available.
If the user does not have an account with a preferred address set up, the default account is used instead. Call this method before you display the mail composition interface only. Do not call it after presenting the interface to the user.
Upvotes: 4
Reputation: 709
I don't think you can change "from" if you use MFMailComposeViewController in app email in iOS Another workaround, you may use this, a standalone email client, instead. You will have better control of the sender programmatically.
Upvotes: 0
Reputation: 12366
As far as I know, it's not possible. When the mail composer is open, you will be able to fetch the "from" field from the list of e-mails configured in the device, and the user selected default will be initially set.
I know that it would be useful to know the list of available "from" accounts and set the composer with a more appropriate user choice. Probably Apple doesn't want to give the app this possibility. You might open a "radar" with Apple, e.g. adding a special view controller to let the user define a different default address for the specific app, this would be a nice addition to the iOS.
Upvotes: 0
Reputation: 19635
There isn't a way to do what you want with the From field. The from address will default to whatever mail account the user has specified as "default" in Settings. Obviously if the user has only one mail account set up then it will be that account.
Upvotes: 10