Chcę wysłać wiadomość e-mail z mojej aplikacji na iPhone'a. Słyszałem, że iOS SDK nie ma interfejsu API poczty e-mail. Nie chcę używać następującego kodu, ponieważ spowoduje on zamknięcie mojej aplikacji:
NSString *url = [NSString stringWithString: @"mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
Jak mogę wysłać wiadomość e-mail z mojej aplikacji?
ios
iphone
email
cocoa-touch
Khushi
źródło
źródło
presentModalViewController:animated:
idismissModalViewControllerAnimated:
zostały oznaczone jako przestarzałe - zamiast metod zastępczych blokowe opartepresentViewController:animated:completion:
idismissViewControllerAnimated:completion:
powinny być stosowane.@interface viewController : UIViewController <MFMailComposeViewControllerDelegate>
[self presentModalViewController:controller animated:YES];
zamień na[self presentViewController:controller animated:YES completion:nil];
i[self dismissModalViewControllerAnimated:YES];
zamień na[self dismissViewControllerAnimated:YES completion:nil];
MFMailComposeViewController to sposób, w który należy przejść po wydaniu oprogramowania iPhone OS 3.0. Możesz spojrzeć na przykładowy kod lub samouczek, który napisałem .
źródło
Kilka rzeczy, które chciałbym tutaj dodać:
Użycie adresu URL mailto nie będzie działać w symulatorze, ponieważ mail.app nie jest zainstalowany w symulatorze. Działa jednak na urządzeniu.
Długość adresu URL mailto jest ograniczona. Jeśli adres URL jest dłuższy niż 4096 znaków, mail.app nie uruchomi się.
W OS 3.0 wprowadzono nową klasę, która umożliwia wysyłanie wiadomości e-mail bez opuszczania aplikacji. Zobacz klasę MFMailComposeViewController.
źródło
Jeśli chcesz wysłać wiadomość e-mail z aplikacji, powyższy kod jest jedynym sposobem, aby to zrobić, chyba że kodujesz własnego klienta poczty (SMTP) w aplikacji lub nie masz serwera, który wyśle Ci pocztę.
Na przykład możesz zakodować aplikację, aby wywoływała adres URL na serwerze, który wysyłałby pocztę za Ciebie. Następnie wystarczy wywołać adres URL ze swojego kodu.
Zauważ, że z powyższym kodem nie możesz dołączyć niczego do wiadomości e-mail, co pozwoli ci na to metoda klienta SMTP, a także metoda po stronie serwera.
źródło
Poniższy kod jest używany w mojej aplikacji do wysyłania wiadomości e-mail z załącznikiem. Załączniki są obrazem. Możesz wysłać dowolny typ pliku, należy tylko pamiętać, że musisz określić poprawny typ „mimeType”
dodaj to do pliku .h
Dodaj MessageUI.framework do pliku projektu
Metoda delegowania jest pokazana poniżej
źródło
Jest to kod, który może pomóc, ale nie zapomnij dołączyć framewark ui wiadomości i dołączyć metodę delegatów MFMailComposeViewControllerDelegate
źródło
Swift 2.2. Na podstawie odpowiedzi Esq
Kod klienta :
źródło
Aby wysłać wiadomość e-mail z aplikacji iPhone'a, musisz wykonać poniższą listę zadań.
Krok 1: Zaimportuj do
#import <MessageUI/MessageUI.h>
klasy kontrolera, do której chcesz wysłać wiadomość e-mail.Krok 2: Dodaj delegata do kontrolera, jak pokazano poniżej
Krok 3: Dodaj poniższą metodę wysyłania wiadomości e-mail.
Krok 4: Wdrożenie MFMailComposeViewController Delegat
źródło
Swift 2.0
źródło
Oto wersja Swift:
Źródło
źródło
Napisałem proste opakowanie o nazwie KRNSendEmail, które upraszcza wysyłanie wiadomości e-mail do jednego wywołania metody.
KRNSendEmail jest dobrze udokumentowany i dodany do CocoaPods.
https://github.com/ulian-onua/KRNSendEmail
źródło