HardCode
HardCode

Reputation: 2025

How to set from in MFMailComposeViewController?

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

Answers (4)

heyfrank
heyfrank

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

androidkc
androidkc

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

viggio24
viggio24

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

Brian Driscoll
Brian Driscoll

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

Related Questions