Я хочу отправить электронное письмо из приложения для iPhone. Я слышал, что iOS SDK не имеет почтового API. Я не хочу использовать следующий код, потому что он выйдет из моего приложения:
NSString *url = [NSString stringWithString: @"mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
Так как я могу отправить электронное письмо из моего приложения?
ios
iphone
email
cocoa-touch
Khushi
источник
источник
presentModalViewController:animated:
иdismissModalViewControllerAnimated:
были отмечены как осуждается - вместо блочные методы , основанные на заменеpresentViewController:animated:completion:
иdismissViewControllerAnimated:completion:
должны быть использованы.@interface viewController : UIViewController <MFMailComposeViewControllerDelegate>
[self presentModalViewController:controller animated:YES];
заменить на[self presentViewController:controller animated:YES completion:nil];
и[self dismissModalViewControllerAnimated:YES];
заменить на[self dismissViewControllerAnimated:YES completion:nil];
MFMailComposeViewController - это путь после выпуска программного обеспечения iPhone OS 3.0. Вы можете посмотреть пример кода или учебник, который я написал .
источник
Несколько вещей, которые я хотел бы добавить сюда:
Использование mailto URL не будет работать в симуляторе, так как mail.app не установлен на симуляторе. Это работает на устройстве, хотя.
Существует ограничение на длину почтового URL. Если URL превышает 4096 символов, mail.app не запустится.
В OS 3.0 появился новый класс, который позволяет отправлять электронную почту, не выходя из приложения. Смотрите класс MFMailComposeViewController.
источник
Если вы хотите отправить электронное письмо из своего приложения, приведенный выше код является единственным способом сделать это, если вы не кодируете свой собственный почтовый клиент (SMTP) внутри своего приложения или если сервер отправляет почту для вас.
Например, вы можете написать код своего приложения для вызова URL-адреса на вашем сервере, который будет отправлять почту для вас. Затем вы просто вызываете URL из своего кода.
Обратите внимание, что с помощью приведенного выше кода вы ничего не можете прикрепить к электронному письму, что позволит вам сделать метод SMTP-клиента, а также метод на стороне сервера.
источник
Приведенный ниже код используется в моем приложении для отправки электронной почты с вложением, здесь прикрепленные файлы являются изображениями. Вы можете отправлять файлы любого типа, но нужно помнить, что вам нужно было указать правильный mimeType.
добавьте это в ваш .h файл
Добавьте MessageUI.framework в файл вашего проекта
Метод делегата показан ниже
источник
Это код, который может помочь вам, но не забудьте включить фреймворк пользовательского интерфейса и метод делегатов MFMailComposeViewControllerDelegate.
источник
Свифт 2.2. Адаптировано из ответа Esq
Код клиента:
источник
Чтобы отправить электронное письмо из приложения для iPhone, вам нужно сделать список задач ниже.
Шаг 1: Импорт
#import <MessageUI/MessageUI.h>
В вашем классе контроллера, куда вы хотите отправить электронное письмо.Шаг 2: Добавьте делегата в свой контроллер, как показано ниже
Шаг 3: Добавьте ниже метод отправки электронной почты.
Шаг 4. Реализация делегата MFMailComposeViewController
источник
Swift 2.0
источник
Вот версия Swift:
Источник
источник
Я написал простую оболочку под названием KRNSendEmail, которая упрощает отправку электронной почты для одного вызова метода.
KRNSendEmail хорошо документирован и добавлен в CocoaPods.
https://github.com/ulian-onua/KRNSendEmail
источник