iOS开发——发短信,邮件

  在IOS开发中,有时候我们会需要用到邮件发送的功能。比如,接收用户反馈和程序崩溃通知等等,这个功能是很常用的。在苹果系统中,如果彼此的手机都是iOS设备,并且开通了iMessage功能,那么彼此之间的短信是走网络通道,而不走运营商的通道,短信也顺便写写喽。

  还是老规矩,直接上代码。

//

//  ViewController.m

//  Demo-testEmail

//

//  Created by yyt on 16/5/16.

//  Copyright © 2016年 yyt. All rights reserved.

//

#import "ViewController.h"

#import <MessageUI/MessageUI.h>

@interface ViewController ()<UIActionSheetDelegate,MFMailComposeViewControllerDelegate,MFMessageComposeViewControllerDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

button.frame = CGRectMake(self.view.bounds.size.width/2 - 30, 200, 60, 40);

button.backgroundColor = [UIColor orangeColor];

[button setTitle:@"分享" forState:UIControlStateNormal];

[button addTarget:self action:@selector(clickButton) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];

}

- (void)clickButton {

UIActionSheet *actionSheet=[[UIActionSheet alloc]initWithTitle:@"分享" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Email",@"Message", nil];

[actionSheet showInView:self.view];

}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

if(buttonIndex==1){

if ([MFMessageComposeViewController canSendText]) {

[self sendSMS:@"I‘m using iHeper,it is great!" recipientList:nil];

} else {

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:nil message:@"系统短信不可用!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];

[alert show];

}

}else if(buttonIndex==0){

if ([MFMailComposeViewController canSendMail]) { // 用户已设置邮件账户

[self sendEmailAction]; // 调用发送邮件的代码

} else {

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:nil message:@"系统邮箱未设置账号!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];

[alert show];

}

}

}

- (void)sendEmailAction {

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

mc.mailComposeDelegate = self;

[mc setSubject:@"Hi!"];

[mc setMessageBody:@"I‘m using iHeper,it is great!" isHTML:NO];

[self presentViewController:mc animated:YES completion:nil];

}

//调用sendSMS函数,发送内容,收件人列表

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients {

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

if([MFMessageComposeViewController canSendText])

{

controller.body = bodyOfMessage;

controller.recipients = recipients;

controller.messageComposeDelegate = self;

[self presentViewController:controller animated:YES completion:nil];

}

}

// 处理发送完的响应结果

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {

[self dismissViewControllerAnimated:YES completion:nil];

if (result == MessageComposeResultCancelled)

NSLog(@"Message cancelled");

else if (result == MessageComposeResultSent)

NSLog(@"Message sent");

else

NSLog(@"Message failed") ;

}

- (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:

NSLog(@"Mail sent...");

break;

case MFMailComposeResultFailed:

NSLog(@"Mail send errored: %@...", [error localizedDescription]);

break;

default:

break;

}

[self dismissViewControllerAnimated:YES completion:nil];

}

@end

时间: 2024-10-07 21:05:29

iOS开发——发短信,邮件的相关文章

ios打电话发短信接口

电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10010"]];//打电话 使用openURL这个API打电话结束后,返回的是系统的拨打电话界面,如何才能返回自己的应用呢?有两种方法与大家分享. 第一种是用UIWebView加载电话,这种是合法的,可以上A

IOS,发短信,发邮件,打电话

今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // 直接拨号,拨号完成后会停留在通话记录中1.方法: NSURL *url = [NSURL URLWithString:@"sms://10010"]; [[UIApplication sharedApplication] openURL:url]; 2.优点:–简单3.缺点:–不能指定短信

iOS打电话发短信发邮件总结

今天把APP里常用小功能 例如发短信.发邮件.打电话. 全部拿出来简单说说它们的实现思路. 1.发短信 实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点. 1.1.发短信(1)——URL // 直接拨号,拨号完成后会停留在通话记录中 1.方法: NSURL *url = [NSURL URLWithString:@"sms://10010"]; [[UIApplication sharedApplication] openURL:url]; 2.优点: –简单 3.缺点:

通知中心的只用NSNotificationCenter传值 和打电话,发短信,邮件,打开网页的直接打开的功能

通知中心的使用 第一个页面三部; 产生一个通知中心的对象(系统的一个单例类) 在通知中心注册一个观察者 收到通知后调用的方法 dealloc移除观察者的身份 第二个页面 发送通知中心 创建一个字典 返回你要的数据 直接跳转的功能     //直接跳入的功能;     //打电话     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://110"]];     //发短信     [[UIApp

ios 打电话 发短信

打电话: 第一种:利用私有API,appStore不合法 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10010"]] 第二种:UIWebView加载电话,这种是合法的,可以上App Store的 UIWebView*callWebview =[[UIWebView alloc] init]; NSURL *telURL =[NSURL URLWithString:@"tel:

iOS 打电话 发短信(转载)

官方代码 发短息和邮件添加MessageUI.framework 库 发送信息 - (IBAction)showSMSPicker:(id)sender { // You must check that the current device can send SMS messages before you // attempt to create an instance of MFMessageComposeViewController.  If the // device can not se

ios开发之短信验证

这里使用的SMS_SDK.framework(Mob官网去下载) 来做的短信验证, 操作非常简单, 自己去注册账号拿到appkey 然后就是需要导入一些库文件 需要导入的库有Security.framework Foundation.framework, UIKit.framework, CoreGraphics.framework, libicucore.dylib, libz.lib, AddressBook.framework, AddressBookUI.framework, Messa

iOS MFMessageComposeViewController发短信功能

MFMessageComposeViewController 同样是在 MessageUI Framework 中的一个类别,而它的主要功能是用来制作 SMS 讯息的相关格式,它的使用方式如同 MFMailComposeViewController 一样,透过一些简单的设定,你也可以为你的应用程序加上 SMS 讯息的功能. 在使用上首先汇入 MessageUI Framework,并引用其头文件,Xcode 4 Framework 汇入方式可以参考 Xcode 4 新增 Framework 的方

iOS打电话,发短信,发邮件,打开网址

//调用自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]]; //调用电话 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]]; //调用sms [[UIApplication sharedApp