iPhone不使用MessageUI发送电子邮件

时间:2011-03-02 19:22:20

标签: iphone cocoa-touch mfmailcomposeviewcontroller messageui

嗨,我正在寻求帮助,我是可可和iphone编程的新手

有没有办法发送电子邮件,使用设备上配置的标准帐户而无需打开撰写用户界面?

我想写一个应用程序给我发送电子邮件提醒。

你有一个你输入内容的文本区域,当你点击标题栏上的按钮发送它会将文本区域的内容发送到我的电子邮件,就是这样

我已经完成了文本区域和按钮的操作,但是当我使用MFMailComposeViewController时,它会打开一个撰写窗口...

或者可能使用撰写窗口,但隐藏某些字段,例如to,cc,bcc ......

我在互联网上找到的所有文章都已过时或关于MFMailComposeViewController ......

期待听到您的重播

...谢谢

2 个答案:

答案 0 :(得分:10)

可以在没有用户互动的情况下使用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];
}

答案 1 :(得分:2)

MFMailComposeViewController是Apple提供的用于发送邮件的类。

如果您不想使用作曲家,则必须编写自己的smtp客户端。 (它可能是php,.net,java或任何其他技术)。您也可以尝试skpsmtpmessage