Objective c 如何在MFMailComposeViewController中设置起始?

Objective c 如何在MFMailComposeViewController中设置起始?,objective-c,ios,Objective C,Ios,如何在MFMailComposeViewController中设置发件人地址 MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; controller.mailComposeDelegate = self; [controller setSubject:@"In app email..."]; [controller setMessageBody:@"To FirstName

如何在
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:@"eamil@somemail.com"]; // (NSString *) [feed valueForKey:@"email"]]; 
[controller setToRecipients:toRecipients];

对于From字段,没有一种方法可以实现您想要的功能。发件人地址将默认为用户在设置中指定为“默认”的任何邮件帐户。显然,如果用户只设置了一个邮件帐户,那么它将是该帐户。

据我所知,这是不可能的。当mail composer打开时,您将能够从设备中配置的电子邮件列表中获取“发件人”字段,并且最初将设置用户选择的默认值


我知道,了解可用“发件人”帐户的列表并为编写器设置更合适的用户选择将非常有用。苹果可能不想给这款应用提供这种可能性。你可以用苹果打开一个“雷达”,例如,添加一个特殊的视图控制器,让用户为特定的应用定义一个不同的默认地址,这将是对iOS的一个很好的补充。

我认为你不能更改“从”,如果你在iOS中使用MFMailComposeViewController应用程序内电子邮件,你可以使用另一种解决方法,而是一个独立的电子邮件客户端。您可以通过编程更好地控制发送者

由于iOS 11.0,这是可能的

使用
setPreferredSendingEmailAddress(:)
定义首选地址,该地址将自动选择相应的帐户(如果可用)

从:

设置要在“发件人”字段中使用的首选电子邮件地址(如果该地址可用)

如果用户没有设置首选地址的帐户,则使用默认帐户。 在仅显示邮件合成界面之前调用此方法。不要在向用户展示界面后调用它


请分别询问有关取消的问题;我们尝试将问题保留在单个主题/问题上。我确实删除了取消问题。因此,基本上每个用户都会在设备上设置电子邮件地址?或者他们有没有可能没有设置电子邮件?我想使用用户分配给我们的应用的电子邮件地址。如果他们没有在设备上设置邮件帐户,那么他们将无法发送邮件。只有用户在其设备上设置了应用程序的电子邮件地址,您才能使用用户分配给您的应用程序的电子邮件地址。现在这是可能的,请参阅我的答案