Szukałem od jakiegoś czasu pewnej platformy, która pozwoli mi wysłać wiadomość e-mail z poziomu mojej aplikacji. Próbowałem MailCore, Pantomimy i SKPSMTP bez powodzenia. Nie mogę zmusić ich do kompilacji w Xcode, więc założyłem, że są przestarzałe. Czy mogę to zrobić? Jeśli tak to jak? Dzięki.Xcode 4/iOS - Wyślij wiadomość e-mail za pomocą protokołu SMTP z poziomu mojej aplikacji
Odpowiedz
Możesz łatwo wysyłać wiadomości e-mail z urządzenia z systemem iOS. Nie ma potrzeby wdrażania SMTP i wszystkich. Najlepszą rzeczą w korzystaniu z wbudowanych funkcji wysyłania wiadomości e-mail w systemie iOS jest dostęp do książki adresowej! Tak więc automatycznie uzupełnia nazwy, adresy e-mail. Yaaii !!
Dołącz, AddressBook
, AddressBookUI
i MessageUI
frameworków i kodu tego typu. Pamiętaj, że możesz nawet wysyłać treści jako HTML!
#import <MessageUI/MessageUI.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
MFMailComposeViewController *mailComposer;
mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
[mailComposer setModalPresentationStyle:UIModalPresentationFormSheet];
[mailComposer setSubject:@"your custom subject"];
[mailComposer setMessageBody:@"your custom body content" isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
Dla kompletności, mam do napisania tego selektora, aby zamknąć okno e-mail, jeśli użytkownik naciśnie cancel
lub send
-
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error
{
if(error) NSLog(@"ERROR - mailComposeController: %@", [error localizedDescription]);
[self dismissModalViewControllerAnimated:YES];
return;
}
Szczęśliwa kodowanie ...
Dziękuję za twoją szczegółową i nieco humorystyczną odpowiedź! :) Czy to podniesie ekran wiadomości od dołu, czy wyśle go po cichu w tle? Ponieważ staram się o to drugie. –
bym Wyobraź sobie, że sposobem zatwierdzonym przez Apple jest wysłanie danych na serwer za pośrednictwem Postu HTTP, a serwer powinien wygenerować dla ciebie pocztę. Widziałem, jak inni zadawali podobne pytania, a odpowiedź brzmi, że jeśli wysyłasz je z urządzenia, naprawdę musisz zapytać użytkownika.
Mogę ci nawet powiedzieć, dlaczego tak jest: Wyobraź sobie aplikację, która może wysłać się do wszystkich w twojej książce adresowej bez twojego potwierdzenia, mówiąc im, że właśnie zainstalowałeś aplikację X, i oni też powinni. Nawet jeśli ma się dobre intencje, może to szybko doprowadzić do potężnej burzy SMTP, a w istocie będzie to wirus "I love you".
To było wystarczające obciążenie publicznego Internetu, ale na bezprzewodowych nośnikach, może szybko spowodować wystarczająco dużo przeciążenia, aby zablokować usługę cel.
Wniosek: Użyj ComposeViewController, jak sugeruje @Srikar, lub POST danych na serwerze i wyślij go stamtąd.
Rozumiem to, ale gdybym nie używał jabłka zbudowanego w ramach, nie potrzebowałbym dostępu do książki adresowej. Tylko jeden z e-maili i jeden na e-mail. Ale jeśli nie jest to możliwe, muszę po prostu poprosić użytkownika o wypełnienie formularza, a wiadomość e-mail zostanie wygenerowana dla nich po prostu naciśnij. –
SKPSMTPMessage nadal działa dobrze do wysyłania wiadomości e-mail bez potrzeby interfejsu użytkownika .
Pamiętaj, aby dodać odniesienie do CFNetwork.framework
w swoim projekcie. W przeciwnym razie otrzymasz błędy kompilacji.
Użyłem tego 'SKPSMTPMessage'. Ale musi zakodować nazwę użytkownika i hasło. Ale chcę wysłać wiadomość e-mail przy użyciu już zalogowanego konta e-mail w telefonie iPhone. Jak mogę to zrobić – iDia
Należy zauważyć, że MFMailComposeViewController
ma metodę o nazwie canSendMail. Jeśli nie zaznaczysz tego przed wyświetleniem MFMailComposeViewController
na urządzeniu, które nie ma konta e-mail, otrzymasz SIGABRT.
Łatwo przegapić to podczas testowania na urządzeniu lub symulatorze, ponieważ prawdopodobnie będziesz mieć konto e-mail na Macu i iPadzie.
- 1. Wyślij wiadomość do użytkownika w WhatsApp z mojej aplikacji (Android)
- 2. Wyślij e-mail za pośrednictwem gmail SMTP
- 3. Wyślij wiadomość e-mail za pomocą json'a
- 4. Wyślij prywatną wiadomość do moich znajomych za pomocą mojej aplikacji Android
- 5. Twitter: wyślij bezpośrednią wiadomość za pomocą skryby
- 6. Jak wysłać wiadomość e-mail za pomocą protokołu SMTP i indeksu 10 w Gmailu?
- 7. Wyślij wiadomość e-mail z załącznikiem w języku R za pomocą Gmaila
- 8. Batch Wyślij wiadomość e-mail z SwiftMailer
- 9. wyślij wiadomość e-mail z załączonymi plikami w ZF2
- 10. Nie można wysyłać poczty za pośrednictwem protokołu SSL lub TLS za pomocą protokołu SMTP przy użyciu Javamail
- 11. Wyślij wiadomość e-mail do wielu adresatów z pliku .txt za pomocą Pythona smtplib
- 12. Wyślij email php z formularza kontaktowego
- 13. Wyślij Email Gdy wystąpi błąd
- 14. Tworzenie wiadomości (np. Wersji roboczych) w Gmailu za pomocą protokołu IMAP/SMTP?
- 15. Android - Wyślij wiadomość Telegram pod określony numer
- 16. Uruchamianie aplikacji Apple Mail z poziomu mojej aplikacji?
- 17. SignalR - Wyślij wiadomość OnConnected
- 18. Jak mogę wysłać wiadomość e-mail z django za pomocą serwera Google smtp?
- 19. Wyślij wiadomość z jednej działającej aplikacji konsolowej do innej
- 20. Wyślij wiadomość e-mail FacebookSDK i Swift
- 21. Wyślij pocztę przy użyciu PowerShell za pełnomocnika
- 22. Sirikit "wysyłanie wiadomości za pomocą mojej aplikacji" działa tylko kilka razy
- 23. Nie można wysyłać wiadomości e-mail do domeny zewnętrznej za pomocą protokołu SMTP
- 24. Rails 3: Ustawienia SMTP/Hotmail żywo Hosted Email
- 25. Wyślij SMS-a na Instagram za pomocą mojej aplikacji na Androida
- 26. Django email
- 27. Jak ustawić lub zmienić ID wiadomości SMTP za pomocą javax.mail?
- 28. wyślij wiadomość tekstową przez .net
- 29. UIActivityViewController wyślij wiadomość html ios6
- 30. Przechowywanie SMTP email z przyjaznej nazwy wyświetlanej w web.config
Istnieje sposób, aby wyskoczyć z aplikacji do nowej skrzynki e-mail w aplikacji, ale użytkownik decyduje, czy ją wysłać. Nie jestem pewien, czy zaimplementowanie własnego SMTP w aplikacji będzie zatwierdzone przez Apple. – Dani
Może nie, ale jest wiele aplikacji, które implementują to, czego nie ma? Kontekst, w którym się znajduje, to formularz rezerwacji hotelu. Więc jeśli dodaję przycisk wysyłania, a jabłko widzę, że nie robię nic nieprzyjemnego, nie widzę powodu, dla którego byłoby odrzucone. Chyba że przegapiłem coś w wytycznych. Dziękuję za wejście. –
Z powodzeniem skompilowałem kod SKPSMTP. Spróbuj dodać pliki .m jawnie do Faz budujących/źródeł kompilacji. – Ellis