iOS APP內(nèi)部調(diào)用系統(tǒng)的郵件發(fā)送和分享文件

序言:app內(nèi)部調(diào)用系統(tǒng)郵件發(fā)送和分享文件,其中文件作為郵件附件發(fā)送的email目標(biāo)地址饿肺,使用了MessageUI Framework蒋困。

  • 查看MessageUI框架,包含<MessageUI/MFMailComposeViewController.h>
    <MessageUI/MFMessageComposeViewController.h>敬辣,前者是郵件發(fā)送雪标,后者是短信發(fā)送零院,設(shè)計(jì)架構(gòu)都是一致的。今天我主要整理郵件發(fā)送和分享文件村刨。
  • 使用的簡(jiǎn)要步驟暫且如下表述:

    1.判斷系統(tǒng)是否配置郵箱賬戶等告抄;
    2.MFMailComposeViewController實(shí)例并設(shè)置代理(需要注意是:代理屬性是mailComposeDelegate,不是delegate嵌牺,如果不小心寫(xiě)成了delegate就是UINavigationControllerDelegate的代理打洼,而不是我們要的MFMailComposeViewControllerDelegate),并實(shí)現(xiàn)代理方法逆粹,處理取消發(fā)送募疮、發(fā)送成功及發(fā)送失敗等情況。
    3.設(shè)置郵件主題僻弹、收件人阿浓、抄送和密送人等,這些也可以在稍后彈出來(lái)的系統(tǒng)UI由用戶自行輸入或添加蹋绽。
    4.通過(guò)addAttachmentData設(shè)置郵件的附件數(shù)據(jù)芭毙,也就是我們要發(fā)送和分享的文件。
    5.將以上定制的MFMailComposeViewController實(shí)例實(shí)例present出來(lái)卸耘。

  • 以下是具體實(shí)現(xiàn)的代碼
##pragma mark - 郵件分享方法
#- (void)shareByEmail{
            MFMailComposeViewController *mailSender = [[MFMailComposeViewController alloc]init];
            mailSender.mailComposeDelegate = self;
            [mailSender setSubject:NKLocalizedString(@"EmailFromMyApp")];
            //以下為具體業(yè)務(wù)代碼
            data = [NSData dataWithContentsOfFile:path];//文件數(shù)據(jù)
            NSString *extension;//文件類(lèi)型識(shí)別字符串退敦,如文件擴(kuò)展名
            NSString *mimeType = nil;//這個(gè)不能錯(cuò),錯(cuò)了的話會(huì)閃退
                if ([extension isEqualToString:@"MOV"] || [extension isEqualToString:@"MP4"]) {
                    mimeType = @"video/quicktime";
                }else if ([extension isEqualToString:@"MP3"] || [extension isEqualToString:@"M4A"]) {
                    mimeType = @"audio/mpeg3";
                }else if ([extension isEqualToString:@"JPG"] || [extension isEqualToString:@"JPEG"]) {
                    mimeType = @"image/jpeg";
                }else if ([extension isEqualToString:@"PNG"]) {
                    mimeType = @"image/png";
                }else if ([extension isEqualToString:@"TXT"]) {
                    mimeType = @"text/plain";
                }else if ([extension isEqualToString:@"PDF"]) {
                    mimeType = @"application/pdf";
                }else if ([extension isEqualToString:@"DOC"] || [extension isEqualToString:@"DOCX"]) {
                    mimeType = @"application/msword";
                }else if ([extension isEqualToString:@"XLS"] || [extension isEqualToString:@"XLSX"]) {
                    mimeType = @"application/vnd.ms-exceld";
                }else if ([extension isEqualToString:@"PPT"] || [extension isEqualToString:@"PPTX"]) {
                    mimeType = @"application/vnd.ms-powerpoint";
                }else if ([extension isEqualToString:@"ZIP"]) {
                    mimeType = @"application/zip";
                }else{
                    return ;
                }
                [mailSender addAttachmentData:data mimeType:mimeType fileName:name];
            }
            [self presentViewController:mailSender animated:YES completion:nil];
}

##pragma mark - MFMailComposeViewControllerDelegate
#- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    [controller dismissViewControllerAnimated:YES completion:nil];
    switch (result) {
        case MFMailComposeResultCancelled:
        {
        }
            break;
        case MFMailComposeResultSaved:
        {
        }
            break;
        case MFMailComposeResultSent:
        {
            showAlertMessage(nil, LocalizedString(@"HaveSent"));
        }
            break;
        case MFMailComposeResultFailed:
        {
        }
            break;
    }
}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚣抗,一起剝皮案震驚了整個(gè)濱河市侈百,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忠聚,老刑警劉巖设哗,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異两蟀,居然都是意外死亡网梢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)赂毯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)战虏,“玉大人,你說(shuō)我怎么就攤上這事党涕》掣校” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵膛堤,是天一觀的道長(zhǎng)手趣。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么绿渣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任朝群,我火速辦了婚禮,結(jié)果婚禮上中符,老公的妹妹穿的比我還像新娘姜胖。我一直安慰自己,他們只是感情好淀散,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布右莱。 她就那樣靜靜地躺著,像睡著了一般档插。 火紅的嫁衣襯著肌膚如雪慢蜓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天郭膛,我揣著相機(jī)與錄音胀瞪,去河邊找鬼。 笑死饲鄙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的圆雁。 我是一名探鬼主播忍级,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼伪朽!你這毒婦竟也來(lái)了轴咱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤烈涮,失蹤者是張志新(化名)和其女友劉穎朴肺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坚洽,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戈稿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讶舰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞍盗。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖跳昼,靈堂內(nèi)的尸體忽然破棺而出般甲,到底是詐尸還是另有隱情,我是刑警寧澤鹅颊,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布敷存,位于F島的核電站,受9級(jí)特大地震影響堪伍,放射性物質(zhì)發(fā)生泄漏锚烦。R本人自食惡果不足惜觅闽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挽牢。 院中可真熱鬧谱煤,春花似錦、人聲如沸禽拔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)睹栖。三九已至硫惕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間野来,已是汗流浹背恼除。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曼氛,地道東北人豁辉。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像舀患,于是被迫代替她去往敵國(guó)和親徽级。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容