使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下:
(1)首先判断设备是否有发送邮件功能
(2)如果设备允许发送邮件,创建一个MFMailComposeViewController视图控制器,并对其设置邮件标题,正文内容,收件人,附件等。
(3)邮件发送后,会执行回调代理方法,可以获取发送结果(成功,失败或取消)
效果图如下:
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import
UIKit
import
MessageUI
class
ViewController
:
UIViewController
,
UINavigationControllerDelegate
,
MFMailComposeViewControllerDelegate
{
override
func
viewDidLoad() {
super
.viewDidLoad()
//首先要判断设备具不具备发送邮件功能
if
MFMailComposeViewController
.canSendMail(){
let
controller =
MFMailComposeViewController
()
//设置代理
controller.mailComposeDelegate =
self
//设置主题
controller.setSubject(
"我是邮件标题"
)
//设置收件人
controller.setToRecipients([
"a1@hangge.com"
,
"a2@hangge.com"
])
//设置抄送人
controller.setCcRecipients([
"b1@hangge.com"
,
"b2@hangge.com"
])
//设置密送人
controller.setBccRecipients([
"c1@hangge.com"
,
"c2@hangge.com"
])
//添加图片附件
var
path =
NSBundle
.mainBundle().pathForResource(
"hangge.png"
, ofType:
""
)
var
myData =
NSData
(contentsOfFile: path!)
controller.addAttachmentData(myData, mimeType:
"image/png"
, fileName:
"swift.png"
)
//设置邮件正文内容(支持html)
controller.setMessageBody(
"我是邮件正文"
, isHTML:
false
)
//打开界面
self
.presentViewController(controller, animated:
true
, completion:
nil
)
}
else
{
println
(
"本设备不能发送邮件"
)
}
}
//发送邮件代理方法
func
mailComposeController(controller:
MFMailComposeViewController
!,
didFinishWithResult result:
MFMailComposeResult
, error:
NSError
!) {
controller.dismissViewControllerAnimated(
true
, completion:
nil
)
switch
result.value{
case
MFMailComposeResultSent
.value:
println
(
"邮件已发送"
)
case
MFMailComposeResultCancelled
.value:
println
(
"邮件已取消"
)
case
MFMailComposeResultSaved
.value:
println
(
"邮件已保存"
)
case
MFMailComposeResultFailed
.value:
println
(
"邮件发送失败"
)
default
:
println
(
"邮件没有发送"
)
break
}
}
override
func
didReceiveMemoryWarning() {
super
.didReceiveMemoryWarning()
}
}
|