iOS 4+:需要应用程序发送带有附件的多个电子邮件,但不是立即发送

时间:2011-09-05 20:32:23

标签: iphone ios ipad email

我正在编写一个应用程序,它将位于一种自助服务终端中。很多人会用它。我需要从中发送电子邮件,但用户不必登录自己的帐户,所以基本上它会使用他们的个人电子邮件地址,然后使用已经在iPad / iPhone上设置的默认电子邮件地址给他们发送电子邮件。

但是,我不希望任何电子邮件立即发送 - 我需要缓存它们,然后 - 当管理员这么说时,它应该发送它们 - 原因是应用程序可能在一个可以访问互联网的设备可能是3G ...或者根本没有访问权限 - 但是我需要等到它离开自助服务终端并回到他们可以发送所有电子邮件的地方。

这是否可以使用标准的内置电子邮件功能?

或者这是外部邮件服务器应该用于哪种事情?如果是这样,有没有人知道有一个关于“应用程序内”电子邮件的好教程UIView然后将电子邮件和任何附件发送到外部服务器以便稍后发送?

非常感谢

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解你的观点。您只想在确定具有正确的互联网连接时发送电子邮件?

通过使用标准Mail Composer,创建的电子邮件将传递到邮件应用程序并放置在Apps Outbox中,直到有可用于发送邮件的Internet连接。您还可以在呈现邮件编辑器之前进行检查以获得特定连接(例如WLAN)。问题是,用户必须按发送按钮将邮件传递到邮件应用程序发件箱。

您可以使用附件(在.m文件中)撰写邮件:

-(void)displayComposerSheet 
{
    MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
    mailComposer.mailComposeDelegate = self;

    [mailComposer setSubject:@"This is the subject of my mail"];

    // Set up recipients
    NSArray *toRecipients = [NSArray arrayWithObject:@"user@host.com"]; 

    [mailComposer setToRecipients:toRecipients];

    // Attach an image to the email
    NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageName" ofType:@"png"];
    NSData *myData = [NSData dataWithContentsOfFile:path];
    [mailComposer addAttachmentData:myData mimeType:@"image/png" fileName:@"ImageName"];

    //present the composer
    [self presentModalViewController:mailComposer animated:YES];
    [mailComposer release];
}

请记住要包含在ViewController的.h文件中:

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>

同时让Class响应MFMailComposeViewControllerDelegate协议。