iPhone отправлять электронную почту, не используя MessageUI - PullRequest
3 голосов
/ 02 марта 2011

Привет, я ищу помощи, я новичок в программировании на какао и iphone

Есть ли способ отправить электронное письмо, используя стандартную учетную запись, настроенную на устройстве, БЕЗ открытия пользовательского интерфейса создания?

Я хочу написать приложение для отправки мне напоминаний по электронной почте.

у вас есть текстовая область, в которой вы что-то печатаете, когда вы нажимаете кнопку отправить на заголовке, она отправляет содержимое текстовой области на мою электронную почту, этоэто

Я сделал текстовую область и кнопку, но он открывает окно компоновки, когда я использую MFMailComposeViewController ...

или, возможно, использую окно компоновки, но скрываю определенные поля, такие какчто касается, cc, bcc ...

все статьи, которые я нашел в Интернете, либо устарели, либо о MFMailComposeViewController ...

с нетерпением ждем ответа от вас

Спасибо ...

Ответы [ 2 ]

10 голосов
/ 03 марта 2011

Можно использовать MFMailComposeViewController без взаимодействия с пользователем. Этот метод, очевидно, основан на недокументированных API, поэтому он может сломаться в любое время. Кроме того, было бы неплохо представить приложение, делающее это, в App Store ...

- (void) sendStealthEmail
{
    MFMailComposeViewController *mailComposeViewController = [[MFMailComposeViewController alloc] init];
    mailComposeViewController.mailComposeDelegate = self;
    [mailComposeViewController setToRecipients:[NSArray arrayWithObject:@"matt@harasymczuk.pl"]];
    [mailComposeViewController setSubject:@"Stealth email"];
    [mailComposeViewController setMessageBody:@"Pwned" isHTML:NO];
    [mailComposeViewController view];
}

- (void) mailComposeController:(MFMailComposeViewController*)mailComposeViewController bodyFinishedLoadingWithResult:(NSInteger)result error:(NSError*)error
{
    @try
    {
        id mailComposeController = [mailComposeViewController valueForKeyPath:@"internal.mailComposeController"];
        id sendButtonItem = [mailComposeViewController valueForKeyPath:@"internal.mailComposeView.sendButtonItem"];
        [mailComposeController performSelector:@selector(send:) withObject:sendButtonItem];
    }
    @catch (NSException *e) {}
    [mailComposeViewController release];
}
2 голосов
/ 02 марта 2011

MFMailComposeViewController - это класс, предоставляемый Apple для отправки почты.

Если вы не хотите использовать композитор, вам нужно написать свой собственный клиент SMTP.(Это может быть php, .net, java или любая другая технология).Вы также можете попробовать skpsmtpmessage

...