發(fā)短信 MFMessageComposeViewController和 發(fā)郵件MFMailComposeViewController

今天整理了一下發(fā)短信和發(fā)郵件的方法乳讥。整理如下

短信方法一

//直接跳轉(zhuǎn)到系統(tǒng)的郵件客戶端笋颤,發(fā)完郵件后不能回到原應(yīng)用

NSURL *url = [NSURL URLWithString:@"mailto://123456@qq.com"];

[[UIApplication sharedApplication] openURL:url];


短信一

短信方法二:使用了iOS4.0之后提供的MFMessageComposeViewController钓简。

??????? MFMessageComposeViewController 提供了發(fā)送短信頁面屡穗,不需要自己定制厅目。使用的時(shí)候先倒入頭文件<MessageUI/MessageUI.h>番枚,然后設(shè)置并服從代理messageComposeDelegate(注意代理名字)。注意使用canSendText檢查設(shè)備是否支持發(fā)送短信损敷。操作完成之后可以返回原應(yīng)用

if ([MFMessageComposeViewController canSendText]) {??

??? MFMessageComposeViewController *VC = [[MFMessageComposeViewController alloc] init];

???? //設(shè)置短信內(nèi)容

???? VC.body = @"測試信息發(fā)布葫笼。。拗馒。";

???? //設(shè)置收件人列表

???? VC.recipients = @[@"10086"];

????? //設(shè)置代理

???? VC.messageComposeDelegate = self;//注意代理名字

???? [self presentViewController:VC animated:YES completion:nil];

}else {

??? NSLog(@"不支持");

}

實(shí)現(xiàn)MFMessageComposeViewControllerDelegate代理方法

#pragma mark -- MFMessageComposeViewControllerDelegate 短信代理
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
??? switch (result) {
??????? case 0:// 取消
??????? {
??????????? NSLog(@"取消發(fā)送");
??????? }
??????????? break;
??????? case 1:// 成功
??????? {
??????????? NSLog(@"發(fā)生成功");
??????? }
??????????? break;
??????? case 2:// 失敗
??????? {
??????????? NSLog(@"發(fā)送失敗");
??????? }
??????????? break;
??????? default:
??????????? break;
??? }
??? //不管成功還是失敗路星,收回短信VC
??? [controller dismissViewControllerAnimated:YES completion:nil];
}


短信二

發(fā)郵件方法一

用openURL方法跳轉(zhuǎn)到系統(tǒng)的郵件客戶端,沒有定制發(fā)送內(nèi)容诱桂、標(biāo)題洋丐、附件、圖片等挥等,發(fā)完郵件后不能回到原應(yīng)用友绝。

NSURL *url = [NSURL URLWithString:@"mailto://123456@qq.com"];

[[UIApplication sharedApplication] openURL:url];


郵件一

發(fā)郵件方法二

還是用openURL方法跳轉(zhuǎn)到郵件客戶端,此方法可以附加上收件人肝劲、抄送迁客、密送郭宝、郵件主題、內(nèi)容等功能掷漱。不過操作完成之后還是不能回到原應(yīng)用粘室。

//直接跳轉(zhuǎn)到系統(tǒng)的郵件客戶端,之后不能回到原應(yīng)用卜范,比較復(fù)雜

NSMutableString *urlStr = [[NSMutableString alloc]init];

//添加收件人

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

[urlStr appendFormat:@"mailto:%@", [toRecipients componentsJoinedByString:@","]];

//添加抄送

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

[urlStr appendFormat:@"?cc=%@", [ccRecipients componentsJoinedByString:@","]];

//添加密送

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

[urlStr appendFormat:@"&bcc=%@", [bccRecipients componentsJoinedByString:@","]];

//添加主題

[urlStr appendString:@"&subject=my email"];

//添加郵件內(nèi)容

[urlStr appendString:@"&body=email body!"];

NSString* email = [urlStr stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

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


郵件二

發(fā)郵件方法三:使用MFMailComposeViewController

MFMailComposeViewController和發(fā)短信的有點(diǎn)類似衔统,也是提供的有界面,不需要自己定義海雪。使用時(shí)首先要引入頭文件<MessageUI/MessageUI.h>锦爵,然后開始使用MFMailComposeViewController控制器,記得設(shè)置代理和服從代理喳魏,代理名稱mailComposeDelegate棉浸。用canSendMail檢查設(shè)備是否支持發(fā)送郵件。


郵件三


if ([MFMailComposeViewController canSendMail]) {

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

//注意代理名字

??? VC.mailComposeDelegate = self;

//郵件主題

??? [VC setSubject:@"郵件標(biāo)題"];

//添加收件人

???? [VC setToRecipients:@[@"1@qq.com"]];

//添加抄送

???? [VC setCcRecipients:@[@"2@qq.com"]];

//添加密送

???? [VC setBccRecipients:@[@"3@qq.com"]];

//添加郵件內(nèi)容 isHTML:是否以html格式展示文本

???? [VC setMessageBody:@"此處為<font color='red'>郵件</font>的正文" isHTML:YES];

//添加圖片

??? UIImage *image = [UIImage imageNamed:@"123.png"];

???? NSData *imageData = UIImagePNGRepresentation(image);

?? ? [VC addAttachmentData:imageData mimeType:@"" fileName:@"無所謂.png"];

//添加附件

???? NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ECT4" ofType:@"txt"];

???? NSData *fileData = [NSData dataWithContentsOfFile:filePath];

???? [VC addAttachmentData:fileData mimeType:@"" fileName:@"附件.txt"];

???? [self presentViewController:VC animated:YES completion:nil];

}else {

//如果跳轉(zhuǎn)到了這一步刺彩,把真機(jī)上的系統(tǒng)自帶郵件客戶端配置一下迷郑,配置完記得重啟手機(jī)。

???? NSLog(@"用戶沒有設(shè)置郵件賬戶");

}

可以發(fā)現(xiàn)MFMailComposeViewController可以添加照片和附件创倔,比較方便嗡害。

針對發(fā)短信和發(fā)郵件功能,本文推薦分別使用MFMessageComposeViewController方法和MFMailComposeViewController方法畦攘。

另:openURL: 此方法在iOS10中廢棄霸妹。代替方法在上一篇中有寫。

項(xiàng)目地址:https://pan.baidu.com/s/1kVBuRsj

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末知押,一起剝皮案震驚了整個(gè)濱河市叹螟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌台盯,老刑警劉巖罢绽,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異静盅,居然都是意外死亡良价,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門蒿叠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來明垢,“玉大人,你說我怎么就攤上這事市咽∪” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵施绎,是天一觀的道長溯革。 經(jīng)常有香客問我泌射,道長,這世上最難降的妖魔是什么鬓照? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮孤紧,結(jié)果婚禮上豺裆,老公的妹妹穿的比我還像新娘。我一直安慰自己号显,他們只是感情好臭猜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著押蚤,像睡著了一般蔑歌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揽碘,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天次屠,我揣著相機(jī)與錄音,去河邊找鬼雳刺。 笑死劫灶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掖桦。 我是一名探鬼主播本昏,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼枪汪!你這毒婦竟也來了涌穆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤雀久,失蹤者是張志新(化名)和其女友劉穎宿稀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岸啡,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡原叮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巡蘸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奋隶。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖悦荒,靈堂內(nèi)的尸體忽然破棺而出唯欣,到底是詐尸還是另有隱情,我是刑警寧澤搬味,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布境氢,位于F島的核電站蟀拷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏萍聊。R本人自食惡果不足惜问芬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寿桨。 院中可真熱鬧此衅,春花似錦、人聲如沸亭螟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽预烙。三九已至墨微,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扁掸,已是汗流浹背翘县。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谴分,地道東北人炼蹦。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像狸剃,于是被迫代替她去往敵國和親掐隐。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

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

  • 前言今天給大家詳細(xì)介紹一下iOS之短信,郵件,通信錄技術(shù)的具體實(shí)現(xiàn) 系統(tǒng)應(yīng)用之短信,郵件在開發(fā)某些應(yīng)用時(shí)可能希望能...
    LZM輪回閱讀 1,069評論 3 1
  • 在APP開發(fā)中探颈,可能會涉及到打電話、發(fā)短信训措、發(fā)郵件等功能伪节。比如說,通常一個(gè)產(chǎn)品的“關(guān)于”頁面绩鸣,會有開發(fā)者的聯(lián)系方式...
    哈么么茶閱讀 275評論 0 1
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā)怀大,例如說新浪微博、微信等呀闻,這些應(yīng)用本身可...
    lichengjin閱讀 3,644評論 2 7
  • 喜歡睡覺 沒心沒肺 一身輕松 然而近日卻求而不得 失眠或者入睡很慢 漫漫長夜的寂寞和無奈 體驗(yàn)的徹底 想坐起來看會...
    yuiyui閱讀 269評論 0 0
  • 人到中年铐炫,已是過了再去羨慕別人的年齡了。因?yàn)槲抑浪夂福灰_始倒信,我也隨時(shí)可以擁有和TA們一樣精彩的人生。 我慶幸當(dāng)下...
    紅子Jane閱讀 353評論 2 1