iOS 系統(tǒng)'郵箱'-代碼使用

準(zhǔn)備工作:

加入MessageUI.framework

加入MessageUI.framework


頭文件<MessageUI/MessageUI.h>

#import <MessageUI/MessageUI.h>

協(xié)議MFMailComposeViewControllerDelegate

<UIAlertViewDelegate,MFMailComposeViewControllerDelegate>



確認(rèn)發(fā)送的提示UIAlertView

UIAlertView * alertV = [[UIAlertView alloc] initWithTitle:@"發(fā)到郵箱" message:@"請輸入郵箱地址" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確認(rèn)", nil];
[alertV setAlertViewStyle:UIAlertViewStylePlainTextInput];//“輸入文本”類型

//獲取輸入文本框
UITextField * textNameTF = [alertV textFieldAtIndex:0];
textNameTF.keyboardType = UIKeyboardTypeEmailAddress; //郵箱鍵盤
textNameTF.placeholder = @"請輸入郵箱地址";
//看本地之前是否已經(jīng)存儲 (NSUserDefaults)
textNameTF.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"email"]?[[NSUserDefaults standardUserDefaults] objectForKey:@"email"]:@"";
textNameTF.clearButtonMode = UITextFieldViewModeWhileEditing;

[alertV show];

UIAlertView的代理

#pragma mark - UIAlertViewDelegate
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    //NSLog(@"%ld",buttonIndex);
    if (buttonIndex == 1) { //確認(rèn)按鈕
        UITextField * toEmialTF = [alertView textFieldAtIndex:0];
    
        static NSString * const Regex_Email = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; //驗(yàn)證 郵箱號
        NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",Regex_Email];
        if ([predicate evaluateWithObject:toEmialTF.text] ) { 
            //是郵箱
            [self sendByEmailWith:toEmialTF.text andTitle:@""];//可獲取郵箱標(biāo)題
        } else {
            MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
            hud.mode = MBProgressHUDModeText;
            hud.label.text = @"請輸入正確格式的郵箱";
            hud.margin = 10.f;
            hud.offset = CGPointMake(0, 0.f);
            hud.removeFromSuperViewOnHide = YES;
            [hud hideAnimated:YES afterDelay:1.5f];
        }
    
    }

}

發(fā)送郵件操作:

#pragma mark - 發(fā)送到郵箱
-(void)sendByEmailWith:(NSString *)toEmailStr andTitle:(NSString *)titleStr {
    // 郵件服務(wù)器
    MFMailComposeViewController * mailCompose = [[MFMailComposeViewController alloc] init];
    [mailCompose setMailComposeDelegate:self]; // 代理

    [mailCompose setSubject:@"郵件主題"];// 設(shè)置郵件主題
    [mailCompose setToRecipients:@[toEmailStr] ];// 設(shè)置收件人 (數(shù)組)
    [mailCompose setCcRecipients:@[] ];// 設(shè)置抄送人 (數(shù)組)
    [mailCompose setBccRecipients:@[] ];// 設(shè)置密抄送 (數(shù)組)


    /** 設(shè)置郵件的正文內(nèi)容 */
    NSString * emailContent = @"郵件內(nèi)容";

    // 是否為HTML格式
    [mailCompose setMessageBody:emailContent isHTML:NO];
    // 如使用HTML格式病曾,則為以下代碼
    //[mailCompose setMessageBody:@"<html><body><p>Hello</p><p>World熄诡!</p></body></html>" isHTML:YES];



    /**  添加附件 :文件 ?? NSData   */
    /** A.發(fā)送圖片 */
    UIImage * image = [UIImage imageNamed:@"chx.jpg"];
    NSData *imageData = UIImagePNGRepresentation(image); //圖片較大(畫質(zhì)高)
    //NSData *imageData = UIImageJPEGRepresentation(image, 1.0);//圖片較小(畫質(zhì)低)
    [mailCompose addAttachmentData:imageData mimeType:@"" fileName:@"custom.jpg"];//郵件顯示的文件名

    /** B.發(fā)送文檔 */
    //NSString * pathStr = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/localFile"];
    //NSString * fileStr = [pathStr stringByAppendingPathComponent:@"藍(lán)牙設(shè)備iOS SDK使用文檔 -3.pdf"];
    //NSData * data = [NSData dataWithContentsOfFile:fileStr];//保存的數(shù)據(jù)
    //[mailCompose addAttachmentData:data mimeType:@"" fileName:@"藍(lán)牙設(shè)備iOS SDK使用文檔.pdf"];//郵件顯示的文件名

    // 彈出郵件發(fā)送界面
     if (mailCompose) {  //如果沒有設(shè)置郵件帳戶逼裆,mailController為nil
       [self presentViewController:mailCompose animated:YES completion:nil];
    }

}



#pragma mark - MFMailComposeViewControllerDelegate
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {

    switch(result) {
        case MFMailComposeResultCancelled:{ // 用戶取消編輯
            NSLog(@"Mail send canceled...");
        }break;
        case MFMailComposeResultSaved:{ // 用戶保存郵件
            NSLog(@"Mail saved...");
        }break;
        case MFMailComposeResultSent:{ // 用戶點(diǎn)擊發(fā)送
            NSLog(@"Mail sent...");
        }break;
        case MFMailComposeResultFailed:{ // 用戶嘗試保存或發(fā)送郵件失敗
            NSLog(@"Mail send errored: %@...", [error localizedDescription]);
        
            MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
            hud.mode = MBProgressHUDModeText;
            hud.label.text = [error localizedDescription];
            hud.margin = 10.f;
            hud.offset = CGPointMake(0, 0.f);
            hud.removeFromSuperViewOnHide = YES;
            [hud hideAnimated:YES afterDelay:1.5f];
        }break;
    }

    // 關(guān)閉郵件發(fā)送視圖
    [self dismissViewControllerAnimated:YES completion:nil];
}


操作:

  • 1.填入發(fā)送至郵箱
    填入 發(fā)送至的郵箱

    可能出現(xiàn)狀況:提示沒有系統(tǒng)郵箱賬戶
    提示沒有郵箱賬戶
  • 2.添加打開 系統(tǒng)的郵箱賬戶
    設(shè)置→郵件→賬戶

    添加郵箱賬戶俱病、打開郵件開關(guān)

    3.發(fā)送郵件
    往工程里,拖入的圖片文件:
    拖入的圖片文件

    編輯郵件內(nèi)容:
    編輯郵件

    4.點(diǎn)擊“發(fā)送”后袱结,控制臺輸出:

    5.發(fā)送成功亮隙,接收郵件:
    QQ郵箱提醒

    接收到的郵件:

    代碼地址demo傳送門





很久沒寫簡書了,主要是簡書編輯器的bug9讣小R缥恰!9促王!
身為一個(gè)Coder,看到bug噪漾,就渾身難受E鹋椤!P琅稹L夂病!
關(guān)鍵是還解決不了!

自己就跟工作人員交流了一下下诈胜。豹障。


而現(xiàn)如今還是不能使用“</br>”: 真心有點(diǎn)傷心 ??

屏幕快照 2017-08-23 下午11.39.02.png

希望能快快恢復(fù)!??????????????????????????





goyohol's essay

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末焦匈,一起剝皮案震驚了整個(gè)濱河市血公,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缓熟,老刑警劉巖累魔,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異够滑,居然都是意外死亡垦写,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門彰触,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梯投,“玉大人,你說我怎么就攤上這事》直停” “怎么了尔艇?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長么鹤。 經(jīng)常有香客問我终娃,道長,這世上最難降的妖魔是什么午磁? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任尝抖,我火速辦了婚禮,結(jié)果婚禮上迅皇,老公的妹妹穿的比我還像新娘昧辽。我一直安慰自己,他們只是感情好登颓,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布搅荞。 她就那樣靜靜地躺著,像睡著了一般框咙。 火紅的嫁衣襯著肌膚如雪咕痛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天喇嘱,我揣著相機(jī)與錄音茉贡,去河邊找鬼。 笑死者铜,一個(gè)胖子當(dāng)著我的面吹牛腔丧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播作烟,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼愉粤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拿撩?” 一聲冷哼從身側(cè)響起衣厘,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎压恒,沒想到半個(gè)月后影暴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡探赫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年型宙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片期吓。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡早歇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出讨勤,到底是詐尸還是另有隱情箭跳,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布潭千,位于F島的核電站谱姓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏刨晴。R本人自食惡果不足惜屉来,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狈癞。 院中可真熱鬧茄靠,春花似錦、人聲如沸蝶桶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽真竖。三九已至脐雪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恢共,已是汗流浹背战秋。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讨韭,地道東北人脂信。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像拐袜,于是被迫代替她去往敵國和親吉嚣。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

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