6

Ich versuche, eine App zu erstellen, die eine E-Mail mit MFMailComposeViewController sendet, aber diese Klasse scheint keine Möglichkeit zum Festlegen von E-Mail-Headern zu bieten.Einen E-Mail-Header auf Ziel-C setzen?

Ich habe versucht, nach einer Lösung auf niedrigerer Ebene (oder sogar einer Bibliothek) zu suchen, die das tut, aber keine finden konnte. Wie kann ich E-Mail-Header in einer Objective-C-App festlegen/abrufen?

[EDIT] Um klar zu sein, suche ich nach einer Möglichkeit, E-Mail-Header auf andere Weise als von MFMailComposeViewController bereitgestellt festzulegen. Ich weiß bereits, wie man eine einfache E-Mail sendet. Ich suche nach einer Möglichkeit, E-Mail-Header wie In-Reply-To oder Message-ID

+1

Kopfzeile bedeutet, dass Sie einen Betreff haben möchten? –

+0

gibt es alle Methoden, die Sie brauchen: setSubject (_ :) setToRecipients (_ :) setCcRecipients (_ :) setBccRecipients (_ :) setMessageBody (_: ISHTML :) addAttachmentData (_: mime: filename : –

+1

Nein, mit Header meine ich eigentlich den vollständigen E-Mail-Header http://en.wikipedia.org/wiki/Email#Header_fields Genauer gesagt habe ich versucht auf Header wie Message-ID oder In-Reply-To zuzugreifen, – Vlad

Antwort

1

Die Autoren von Sparrow schrieb eine großartige Klasse namens MailCore (jetzt mit Version 2), die Sie genau das tun können.

Wenn Sie zu der Klasse Klasse Dokumentation hier gehen werden: http://libmailcore.com/mailcore2/api/Classes/MCOMessageHeader.html

Sie können alle Arten von nützlichen Header in den Eigenschaften finden wie messageID, inReplyTo etc‘.

+0

Danke aber, wenn Sie die Anforderung oben lesen, habe ich ausdrücklich angegeben, dass ich nicht nach einer Lösung wie MailCore suche. – Vlad

1

Wenn Sie E-Mail-Header erstellen möchten, können Sie Ihren eigenen Header mit HTML erstellen und als Nachrichtentext der Mail mit isHTML als True festlegen.

Ich habe gerade versucht, den folgenden Code:

NSString * Htmlstr =[NSString stringWithFormat:@ "<html>" 
        "<body>" 
        "<div id=\"container\" style=\"background-color:#EEEEEE;height:300px;width:500px;float:left;\">" 
        "<div id=\"header\" style=\"background-color:#FFA500;\">" 
        "<h3 style=\"margin-top:0;\">ABC</h3></div>" 
        "<div id=\"content\" style=\"background-color:#EEEEEE;height:300px;width:500px;float:left;\">%@</div>" 
        "<div id=\"Banner\" style=\"background-color:#EEEEEE;clear:both;text-align:left;margin-top:0;\"><img src=\"%@\" alt=\"Smiley face\" width=\"500\" height=\"100\"></div>" 

        "<div id=\"footer\" style=\"background-color:#FFA500;clear:both;text-align:center;margin-bottom:0;\">Copyright © abc.com</div>" 
        "</div>" 
        "</body>" 
        "</html>",emailBody,self.SelectedBannerImage]; 

[Mailer setMessageBody: HTMLstr ISHTML: YES];

Hoffnung, dies hilft Ihnen ..

+1

Danke, aber ich denke, es gab Missverständnisse. Mit Header meinte ich das: http://en.wikipedia.org/wiki/Email#Header_fields – Vlad

1

Ich glaube, Sie genügend Ressourcen haben würden, wenn Sie libcurl (c-Bibliothek) oder eines ihrer Kakaoverpackungen verwendet, nicht wahr?

Check here for BBHTTP and CURLHandle.

Das sollte Sie manuell Ihren SMTP-Verkehr mit Kakao/Objc Syntax komponieren lassen. Ist das mehr nach dem, wonach Sie suchen?

+0

Ich war mehr auf der Suche nach einer Möglichkeit, Mail.app zu verwenden, um die E-Mail zu senden, ohne dass der Benutzer alle Schwierigkeiten der Verwendung durchgehen musste Low-Level-Protokolle. Ich dachte, da andere einfachere Header wie Titel usw. erlaubt sind, sollte es eine Möglichkeit geben, Header wie In-Reply-To mit einer High-Level-API irgendwie anzuhängen. – Vlad

+0

Ich wollte vorschlagen, dass Sie eine E-Mail verfassen und mit 'open -a mail.app myEmail' öffnen, aber dann fiel mir ein, dass Sie das für iOS tun. Ich denke, Ihr bestes Ergebnis wäre es, entweder a) eine später ausführende, nicht-private Methode auszuwechseln, die Ihnen ein wenig Zugriff auf das Modell ermöglicht (nicht wahrscheinlich), b) Ihren eigenen eigener Mail-View-Controller, der von einer von mehreren Bibliotheken unterstützt wird, die in diesem qa erwähnt werden. Apple hat einfach nicht das gezeigt, wonach Sie suchen. : / –

Verwandte Themen