6

我正在尝试使用MFMailComposeViewController发送电子邮件的应用程序,但该类似乎没有提供设置电子邮件标题的方法。在Objective-C上设置电子邮件标题?

我试图寻找一个较低级别的解决方案(或者甚至是一个库)来做到这一点,但找不到一个解决方案。如何在Objective-C应用程序中设置/获取电子邮件标题?

[编辑]为了清楚,我正在寻找一种方法来设置电子邮件标题的方式不是由MFMailComposeViewController提供的。我已经知道如何发送简单的电子邮件。我正在寻找一种设置电子邮件标题的方法,例如In-Reply-To或Message-ID

+1

标题表示你想设置主题? – 2014-09-25 05:03:06

+0

有所有你需要的方法: SETSUBJECT(_ :) setToRecipients(_ :) setCcRecipients(_ :) setBccRecipients(_ :) setMessageBody(_:isHTML :) addAttachmentData(_:mime类型:文件名: – 2014-09-25 08:03:03

+1

不,通过标题我实际上是指完整的电子邮件标题http://en.wikipedia.org/wiki/Email#Header_fields更具体地说,我试图访问标题,如消息ID或In-Reply-To。 – Vlad 2014-09-25 14:07:22

回答

1

Sparrow的作者写了一个名为MailCore的优秀课程(现在版本为2),可以让你做到这一点。

如果你会去到类类文档浏览:http://libmailcore.com/mailcore2/api/Classes/MCOMessageHeader.html

你可以找到在性能,如messageIDinReplyTo等”都挺有用的头。

+0

谢谢,但如果你阅读上面的要求,我特别声明我不是在寻找像MailCore这样的解决方案。 – Vlad 2014-09-30 02:10:58

1

如果您要创建电子邮件标题,您可以使用html创建自己的标题,并将其设置为邮件的正文,其格式为isHTML为True。

我只是试图以下代码:

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]; 

[邮包setMessageBody:Htmlstr isHTML:YES];

希望这有助于你..

+1

谢谢,但我认为有误会。通过标题我的意思是这样的:http://en.wikipedia.org/wiki/Email#Header_fields – Vlad 2014-10-01 15:10:23

1

我认为你有足够的资源,如果你使用的libcurl(C库)或者其包装可可之一,不是吗?

Check here for BBHTTP and CURLHandle

这应该让你手动编写使用cocoa/objc语法的smtp流量。这更符合你在寻找什么?

+0

我更多的是寻找一种方式来使用Mail.app发送电子邮件,而用户不必经历所有复杂的使用低级协议。我认为,因为其他更基本的标题(如标题等)是允许的,所以应该有一种方法可以使用高级API以某种方式附加In-Reply-To等标题。 – Vlad 2014-10-04 16:49:50

+0

我打算建议你预先编写一封电子邮件,然后使用'open -a mail.app myEmail'打开它,但后来我想起你正在为iOS做这件事。我认为你最好的选择是利用私有方法,但要么a)调用稍后执行的非私有方法,让你对模型进行一些访问(不太可能),b)将你的自己的邮件组成视图控制器支持由本qa中提到的几个库之一。苹果公司根本没有公开你想要的东西。 :/ – 2014-10-05 21:23:49