iPhone отправлять электронную почту, не используя MessageUI

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

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

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

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

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

или, может быть, с помощью окна создания, но скрыть определенные поля, такие как, CC, BCC...

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

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

Спасибо...

2 ответа

Решение

Можно использовать 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];
}

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

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

Другие вопросы по тегам