Ich möchte eine E-Mail von meiner iPhone-Anwendung senden. Ich habe gehört, dass das iOS SDK keine E-Mail-API hat. Ich möchte den folgenden Code nicht verwenden, da dadurch meine Anwendung beendet wird:
NSString *url = [NSString stringWithString: @"mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
Wie kann ich eine E-Mail von meiner App aus senden?
ios
iphone
email
cocoa-touch
Khushi
quelle
quelle
presentModalViewController:animated:
unddismissModalViewControllerAnimated:
wurde als veraltet markiert - anstatt die blockbasierte ErsatzverfahrenpresentViewController:animated:completion:
unddismissViewControllerAnimated:completion:
verwendet werden.@interface viewController : UIViewController <MFMailComposeViewControllerDelegate>
[self presentModalViewController:controller animated:YES];
ersetzen durch[self presentViewController:controller animated:YES completion:nil];
und[self dismissModalViewControllerAnimated:YES];
ersetzen durch[self dismissViewControllerAnimated:YES completion:nil];
MFMailComposeViewController ist der richtige Weg nach der Veröffentlichung der iPhone OS 3.0-Software. Sie können sich den Beispielcode oder das Tutorial ansehen, das ich geschrieben habe .
quelle
Ein paar Dinge, die ich hier hinzufügen möchte:
Die Verwendung der mailto-URL funktioniert im Simulator nicht, da mail.app nicht im Simulator installiert ist. Es funktioniert jedoch auf dem Gerät.
Die Länge der Mailto-URL ist begrenzt. Wenn die URL größer als 4096 Zeichen ist, wird mail.app nicht gestartet.
In OS 3.0 gibt es eine neue Klasse, mit der Sie eine E-Mail senden können, ohne Ihre App zu verlassen. Siehe die Klasse MFMailComposeViewController.
quelle
Wenn Sie E-Mails von Ihrer Anwendung senden möchten, ist der obige Code die einzige Möglichkeit, dies zu tun, es sei denn, Sie codieren Ihren eigenen E-Mail-Client (SMTP) in Ihrer App oder lassen die E-Mails von einem Server für Sie senden.
Sie können Ihre App beispielsweise so codieren, dass auf Ihrem Server eine URL aufgerufen wird, die die E-Mail für Sie sendet. Dann rufen Sie einfach die URL aus Ihrem Code auf.
Beachten Sie, dass Sie mit dem obigen Code nichts an die E-Mail anhängen können, was die SMTP-Client-Methode Ihnen erlauben würde, sowie die serverseitige Methode.
quelle
Der folgende Code wird in meiner Anwendung verwendet, um E-Mails mit einem Anhang zu senden. Hier handelt es sich bei den Anhängen um ein Bild. Sie können jede Art von Datei senden. Beachten Sie jedoch nur, dass Sie den richtigen 'mimeType' angeben mussten.
Fügen Sie dies Ihrer .h-Datei hinzu
Fügen Sie Ihrer Projektdatei MessageUI.framework hinzu
Die Delegierungsmethode ist wie unten gezeigt
quelle
Dies ist der Code, der Ihnen helfen kann, aber vergessen Sie nicht, die Nachricht ui framewark und die Delegatenmethode MFMailComposeViewControllerDelegate einzuschließen
quelle
Swift 2.2. Angepasst an Esqs Antwort
Kundencode:
quelle
Um eine E-Mail von der iPhone-Anwendung zu senden, müssen Sie die folgende Aufgabenliste ausführen.
Schritt 1: Importieren
#import <MessageUI/MessageUI.h>
In Ihrer Controller-Klasse, in der Sie eine E-Mail senden möchten.Schritt 2: Fügen Sie den Delegaten wie unten gezeigt zu Ihrem Controller hinzu
Schritt 3: Fügen Sie die folgende Methode zum Senden von E-Mails hinzu.
Schritt 4: Implementieren Sie MFMailComposeViewController Delegate
quelle
Swift 2.0
quelle
Hier ist eine schnelle Version:
Quelle
quelle
Ich habe einen einfachen Wrapper namens KRNSendEmail geschrieben, der das Senden von E-Mails an einen Methodenaufruf vereinfacht.
KRNSendEmail ist gut dokumentiert und wird CocoaPods hinzugefügt.
https://github.com/ulian-onua/KRNSendEmail
quelle