Javawag
Javawag

Reputation: 1567

MFMailComposeViewController and privacy - hiding the To: field?

I am creating my second iPhone app, and I've included a feedback form using MFMailComposeViewController. This displays and works correctly, but I'm not sure I want all my users to see my email address. Is there any way to set the to: field to my email address, and then hide it so that the user doesn't see it?

Many thanks, Javawag

Upvotes: 1

Views: 1858

Answers (3)

David
David

Reputation: 889

Swift 5 @jhelzer answer

let yourEmail = "[email protected]"
let mailComposer = MFMailComposeViewController()
let emailString = "App Feedback <\(yourEmail)>"
mailComposer.setToRecipients([emailString])

Upvotes: 1

jhelzer
jhelzer

Reputation: 295

I had the same request from a client where they wanted to mask the email address from the end user. Figured it out by using a formatted email address: displayString <[email protected]>

NSString *yourEmail = @"[email protected]";
MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
NSString *emailString = [NSString stringWithFormat:@"App Feedback <%@>", yourEmail];
[mailComposer setToRecipients:@[emailString]];

It effectually gets you the first image below in the email composer. Then the user has to tap on the App Feedback text a couple of times before they can reveal what the actual email address, see second image.

screen grab of formatted email string screen grab of revealed email string

Upvotes: 3

Noah Witherspoon
Noah Witherspoon

Reputation: 57139

This isn't practical. Even if you were to successfully hide the “To” field in the compose view controller (which would be difficult and probably get you rejected from the App Store), your users could easily see the email address they sent feedback to by checking their email account's sent-mail folder. IWasRobbed's idea—creating an email account specifically for your business or app—is probably the best solution.

Upvotes: 7

Related Questions