This question already has answers here:
Send mail without MFMailComposeViewController
(3 answers)
Closed 9 years ago.
I am working with an app. In which user requirement is that send patient form via email to specific email account. Problem is that email will be send without showing mfmailcomposeviewcontroller. Mean to say user will press one submit button then email sent to user account without mfmailcomposeviewcontroller from iPhone device. is it possible? Can any one help me ? Please send me any example of that work. I have lot of searching on this point unfortunately I can't found any result.
Apple not providing the Mail frameworks for send email without showing MFMailcomposeviewcontroller.
Sending emails programmatically, without user intrection, from an iphone application, cannot be implemented using any of the Apple frameworks.
It could be possible in a jailbroken phone but then it would never see the inside of App Store.
For original answer :
If you want control of email sending, then it's a better way would be to set up a web service (at your server end) you can post to using an HTTP request. If you are posting to only one address this can work very well, although you may want to get the user to input their return mail address.
This is not supported by the iPhone SDK, probably because Apple doesn't want you to do it.
Why not? My guess: Because it's easy to abuse. If we knew user's email address, we could spam them, we could fake emails from them, etc. Imagine finding out an iPhone app sent an email as you without your knowledge -- not cool, even if the app had good intentions.
So, anything you do to get around that, is likely to get you rejected from the app store.
Having said all that, you could basically write your own smtp interaction code to chat with the user's outgoing mail server. For example, if the user has a gmail account, you could ask them for their email and password, you'd have to know how to talk to the gmail servers, and send email through them.
Going that route means asking the user for their username, password, and either asking for or figuring out their mail server information. Another choice is to send directly from the phone (your own smpt server, not just a client), which is a bit more coding. And if you write your own server, the mail you send is more likely to be blocked since your originating IP might not match the domain on the sender's email.
There also exist some libraries that might help out
Open Source Cocoa/Cocoa-Touch POP3/SMTP library?
Bilal, i think you not use this
if ([MFMailComposeViewController canSendMail] )
{
MFMailComposeViewController *mailController = [[MFMailComposeViewController
alloc] init];
[mailController setMailComposeDelegate:self];
[mailController setSubject:#"Patient Form"];
[mailController setMessageBody:increments isHTML:YES ];
[mailController setToRecipients:[NSArray arrayWithObject:#"email id"]];
[self presentViewController:mailController animated:NO completion:nil];
}
use it on the click of submit button, i hope it helps you
Related
I would like to send some info from within the app per email - but restruct the recipient list.
I know when sending emails the standard email-dialog opens. However, is there a solution anyway? Possibly somehow intercepting the "Send" Btn and at least check the recipient list.
No, you cannot do this. iOS requires that the user controls the final setup of an outbound email for security/trust reasons. If you're asking for undocumented workarounds, someone (not me) might know one, but your app won't be App Store-eligible if you find one.
As commenter #Rog says, if you send email via your own server, you can do this however you want without Apple's restrictions.
Here In My app, There is a case where User registering a form
He will give his mail id in one textfield. After Complete the form I need to send a mail to User for conformation of his registering.
Any one can help me please.
Thanks In Advance
I don't think its the right way to send email from the phone to the user's email id. You need to process the form at a remote server and it should send the confirmation email which most of the phone apps with user registration do. If you are going to save the user data locally, there will be several problems and the top problem would be rejection of the app from apple.
actually its pretty simple, you just have to connect to mail server and send commands
http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
i want(i mean client :)) to send an email from a particular account.
in my app there is an option of sending a mail.
now i want to do as any one from any ipad sends email from using this app will sent by one particular account.
How can i do so?
Thanks,
Shyam
From this link
By looking at the class reference for MFMailComposeViewController in the documentation, I'd say you can't do anything about it. It's not very flexible unfortunately, same as sending SMS, and there you can't MMS with it, just SMS.
You can't specify a default email address. If you could, I suspect one could view this as a security risk for spam/unsolicited mail.
You can't using Apple's API, it will use the Mail app and whatever account is setup in there. You'll have to grab full sendmail client code and incorporate it into your app.
I'm working on an iPhone app that, at a certain point, will try to send an email message. If the user has an email set up, great, if not, I need to change some actions accordingly. My question is how do I check to see if the user's iPhone has an email account setup? I've looked everywhere but I can't seem to find an answer.
I'm using MFMailViewController to send the message, but I don't want to create an instance of it unless I can actually send something. Any ideas?
MFMailComposeViewController class has +canSendMail method which
Returns a Boolean indicating whether
the current device is able to send
email. (YES if the device is configured for sending email or NO if it is not.)
I want to send mail from an iPhone app without showing an MFMailComposeViewController. I also want this mail to be sent from the user's default Mail account. Is it possible to do this?
This is not supported by the iPhone SDK, probably because Apple doesn't want you to do it.
Why not? My guess: Because it's easy to abuse. If we knew user's email address, we could spam them, we could fake emails from them, etc. Imagine finding out an iPhone app sent an email as you without your knowledge -- not cool, even if the app had good intentions.
So, anything you do to get around that, is likely to get you rejected from the app store.
Having said all that, you could basically write your own smtp interaction code to chat with the user's outgoing mail server. For example, if the user has a gmail account, you could ask them for their email and password, you'd have to know how to talk to the gmail servers, and send email through them.
Going that route means asking the user for their username, password, and either asking for or figuring out their mail server information. Another choice is to send directly from the phone (your own smpt server, not just a client), which is a bit more coding. And if you write your own server, the mail you send is more likely to be blocked since your originating IP might not match the domain on the sender's email.
There also exist some libraries that might help out. Previous related question:
Open Source Cocoa/Cocoa-Touch POP3/SMTP library?
There are legitimate reasons for wanting to send an email. (Such as communicating with a server using SMTP instead of HTTP)
This blog post should get you going: http://vafer.org/blog/20080604120118
It is possible to use MFMailComposeViewController without user interaction. See my answer on the iPhone send email not using MessageUI question.