6

Я пытаюсь создать приложение, которое отправляет электронное письмо с помощью MFMailComposeViewController, но этот класс, похоже, не дает возможности устанавливать заголовки электронной почты.Настройка заголовка электронной почты на объективе-C?

Я попытался найти решение более низкого уровня (или даже библиотеку), которое делает это, но не может найти его. Как установить/получить заголовки электронной почты в приложении Objective-C?

[EDIT] Чтобы быть ясным, я ищу способ установить заголовки электронной почты способами, отличными от MFMailComposeViewController. Я уже знаю, как отправить простое электронное письмо. Я ищу способ установить заголовки электронной почты, такие как In-Reply-To, или Message-ID

+1

Заголовок означает, что вы хотите установить тему? –

+0

есть все методы, которые вам нужно: SetSubject (_ :) setToRecipients (_ :) setCcRecipients (_ :) setBccRecipients (_ :) setMessageBody (_: isHTML :) addAttachmentData (_: MIMETYPE: FileName : –

+1

Нет, по заголовку Я на самом деле имею в виду полный заголовок электронной почты http://en.wikipedia.org/wiki/Email#Header_fields. Более конкретно, я пытался получить доступ к заголовкам, таким как Message-ID или In-Reply-To. – Vlad

ответ

1

Авторы Sparrow написал отличный класс MailCore (теперь с версией 2), который позволяет вам это делать.

Если вы будете идти к классу Class документации здесь: http://libmailcore.com/mailcore2/api/Classes/MCOMessageHeader.html

Вы можете найти все виды полезных заголовков в свойствах, таких как messageID, inReplyTo и т.д.».

+0

Спасибо, но если вы прочитали это требование выше, я специально заявил, что не ищу решение, такое как MailCore. – Vlad

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

1

Я думаю, вы бы иметь достаточно ресурсы, если вы использовали Libcurl (с библиотекой) или один из его какао оберток, нет?

Check here for BBHTTP and CURLHandle.

Это должно позволить вам вручную составлять ваш трафик smtp с использованием синтаксиса cocoa/objc. Это больше похоже на то, что вы ищете?

+0

Я больше искал способ использования Mail.app для отправки электронной почты без необходимости использования всех сложностей использования протоколы низкого уровня. Я подумал, что, так как другие более простые заголовки, такие как название и т. Д., Разрешены, должен быть способ привязать заголовки, например In-Reply-To, к API-интерфейсу высокого уровня. – Vlad

+0

Я собирался предложить вам предварительно составить письмо и открыть его с помощью 'open -a mail.app myEmail', но потом я вспомнил, что вы пытаетесь сделать это для iOS. Я думаю, что ваш лучший выстрел, не считаясь с использованием частных методов, будет заключаться в том, чтобы: a) выпустить более поздний исполняемый, не закрытый метод, который позволяет вам немного получить доступ к модели, выходящей (маловероятно), b) собственный почтовый составной контроллер представлений, поддерживаемый одной из нескольких библиотек, упомянутых в течение этой qa. Apple просто не раскрывает то, что вы ищете. : / –