如何实现程序调用系统邮件,发送app中抓取的xml图片和内容到指定的邮箱

如何实现程序调用统邮件发送app中抓取的xml图片和内容到指定的邮箱?

这里要感谢无聊给与的无私帮助,ok,下面详述思路过程和发放核心代码:

1.思路:你首先要了解,如何调用ios系统邮件,用到哪些协议,类,函数,这里我直接给出,你要在触发发送邮件的view类中加入MFMailComposeViewControllerDelegate委托协议这样才可以调用统发送邮件displayComposerSheet函数来编辑发送邮件launchMailAppOnDevice函数来发送邮件

2.既然思路清晰了,现在问题就是如何设计实现了,我的方法是想通alertView上一个自的按钮来完成触发系统的发邮件功能,即是:[okbtn addTarget: self action: @selector(sendEMail) forControlEvents: UIControlEventTouchUpInside];这句话中的selector调用了一个sendEmail自定函数,实现ok后,打开系统邮件发送功能。下面是具体发送

-(void)sendEMail   

{  

    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));  

    

    if (mailClass != nil)  

    {  

        if ([mailClass canSendMail])  

        {  

            [self displayComposerSheet];  

        }   

        else   

        {  

            [self launchMailAppOnDevice];  

        }  

    }   

    else   

    {  

        [self launchMailAppOnDevice];  

    }      

}  

这段简,,就是先判断系统邮件功能是否可用,足条件就行上文提到的两个具体的函数完成编辑发件的功能,源如下:

//可以发送邮件的话  

-(void)displayComposerSheet   

{  

    MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];  

    

    mailPicker.mailComposeDelegate = self;  

    

    //设置主题  

    [mailPicker setSubject: @"eMail"];  

    

    // 添加发送者  

    NSArray *toRecipients = [NSArray arrayWithObject: @"first@example.com"];  

//  NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];  

    //NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com", nil];  

    [mailPicker setToRecipients: toRecipients];  

    // 添加图片  

   

    NSData *imageData = UIImagePNGRepresentation(bigimg);            // bigimg中的jpg转换为png  

    // NSData *imageData = UIImageJPEGRepresentation(addPic, 1);    // jpeg  

    [mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"mypic.jpg"];  

    

    NSString *emailBody = @"eMail 正文";  

    [mailPicker setMessageBody:emailBody isHTML:YES];  

    

    [self presentModalViewController: mailPicker animated:YES];  

    [mailPicker release];  

}  



-(void)launchMailAppOnDevice  

{  

    NSString *recipients = @"mailto:first@example.com&subject=my email!";  

   

    NSString *body = @"&body=email body!";  

    

    NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];  

    email = [email stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];  

    

    [[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]];  

}  



自此就完成我开始要实现片,文字的目了。至于送是否成功,我就直接协议中的 didFinishWithResult函数即可完成判断,这虽然不是本文的核心,但考到代的完整性也一并放出:

- (void)mailComposeController:(MFMailComposeViewController *)controller   

          didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error   

{  

    NSString *msg;  

    

    switch (result)   

    {  

        case MFMailComposeResultCancelled:  

            msg = @"邮件发送取消";  

            break;  

        case MFMailComposeResultSaved:  

            msg = @"邮件保存成功";  

            [self alertWithTitle:nil msg:msg];  

            break;  

        case MFMailComposeResultSent:  

            msg = @"邮件发送成功";  

            [self alertWithTitle:nil msg:msg];  

            break;  

        case MFMailComposeResultFailed:  

            msg = @"邮件发送失败";  

            [self alertWithTitle:nil msg:msg];  

            break;  

        default:  

            break;  

    }  

    

    [self dismissModalViewControllerAnimated:YES];  

然后你就可以在你的alertview中直接设置titlemsg,就可以告户发果成功与否了。

3.由于最近在研究算法方面的工作,可能下一篇关于xml多线程解析的总结会在这个星期五,六出来,然后就是发送图片文字到微博的内容了,这个还没研究,等搞懂了就写东西给大家分享,这里先写着,留作提醒。

4.如有问题请群里讨论,我会尽力予以答复,谢谢各位!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值