摘要:1.首先获取mailcore2的代码git clone https://github.com/MailCore/mailcore2/2.将下载的代码拷贝到项目文件目录下,打开自己的工程将下载的mailcore2工程文件mailcore2.xcodeproj直接拉到自己的工程下面 下载中的目录为build-mac/mailcore2.xcodeproj3.将静态库添加到工程中
1.首先获取mailcore2的代码
git clone https://github.com/MailCore/mailcore2/
2.将下载的代码拷贝到项目文件目录下,打开自己的工程将下载的mailcore2工程文件mailcore2.xcodeproj直接拉到自己的工程下面
下载中的目录为build-mac/mailcore2.xcodeproj
3.将静态库添加到工程中
(1)在 Link Binary With Libraries 中添加:
libMailCore-ios.a
(2)在 Target Dependencies 中添加:
static maincore2 ios
(3)在 Link Binary With Libraries 中添加系统包:
CFNetwork.framework Security.framework
4.设置编译链接选项
(1)在other linker flag 中添加:
-lctemplate-ios -letpan-ios -lxml2 -lsasl2 -liconv -ltidy -lz -lc++ -stdlib=libc++ -ObjC -lresolv
(2)在C++ Standard Library选择:
libc++
5.选择target编译静态包
mailcore ios static mailcore2 ios
6.添加环境变量
选择product->scheme->edit scheme->Run->Arguments->Environment Variables添加OS_ACTIVITY_MODE值威disable
二。我们使用SMTP来发送邮件
1.首先编辑发送参数,调用登陆校验方法
- (void)mailCorelogin { _smtpSession = [[MCOSMTPSession alloc] init]; _smtpSession.hostname = @"smtp.qq.com";//qq邮箱地址 _smtpSession.port = 587;//qq邮箱端口号 _smtpSession.username = @"xxxxxxxx@qq.com"; _smtpSession.password = @"xxxxxxxx";//qq邮箱开启SMTP服务之后的**授权码**不是邮箱原始的密码 _smtpSession.connectionType = MCOConnectionTypeStartTLS;//https MCOSMTPOperation *smtpOperation = [self.smtpSession loginOperation]; [smtpOperation start:^(NSError * error) { if (error == nil) { NSLog(@"login successed"); } else { NSLog(@"login failure: %@", error); } }]; }
二,设置发送具体信息
-(void)buildMessage { // 构建邮件体的发送内容 MCOMessageBuilder *messageBuilder = [[MCOMessageBuilder alloc] init]; messageBuilder.header.from = [MCOAddress addressWithDisplayName:@"张三" mailbox:@"422301261@qq.com"]; // 发送人 messageBuilder.header.to = @[[MCOAddress addressWithMailbox:@"164792796@qq.com"]]; // 收件人(多人) // messageBuilder.header.cc = @[[MCOAddress addressWithMailbox:@"@333333qq.com"]]; // 抄送(多人) // messageBuilder.header.bcc = @[[MCOAddress addressWithMailbox:@"444444@qq.com"]]; // 密送(多人) messageBuilder.header.subject = @"测试邮件"; // 邮件标题 messageBuilder.textBody = @"hello world"; // 邮件正文 /* 如果邮件是回复或者转发,原邮件中往往有附件以及正文中有其他图片资源, 如果有需要你可将原文原封不动的也带过去,这里发送的正文就可以如下配置 */ NSString * bodyHtml = @"<p>我是原邮件正文</p>"; NSString *body = @"我是邮件回复的内容"; NSMutableString*fullBodyHtml = [NSMutableString stringWithFormat:@"%@<br/>-------------原始邮件-------------<br/>%@",[body stringByReplacingOccurrencesOfString:@"n"withString:@"<br/>"],bodyHtml]; [messageBuilder setHTMLBody:fullBodyHtml]; [self sendMessage:messageBuilder]; } -(void)sendMessage:(MCOMessageBuilder *)messageBuilder { NSData * rfc822Data =[messageBuilder data]; MCOSMTPSendOperation *sendOperation = [self.smtpSession sendOperationWithData:rfc822Data]; [sendOperation start:^(NSError *error) { if (error == nil) { NSLog(@"send successed"); } else { NSLog(@"send failure: %@", error); } }]; }
三。一些问题
1.Error Domain=MCOErrorDomain Code=5 “Unable to authenticate with the current session’s credentials.” UserInfo={NSLocalizedDescription=Unable to authenticate with the current session’s credentials.}
这个错误主要是邮箱帐号或者密码错误。邮箱后缀是否正确(qq邮箱填的密码就是发送短信之后显示的授权码,而不是直接填原始密码)
2.Error Domain=MCOErrorDomain Code=1 “A stable connection to the server could not be established.” UserInfo={NSLocalizedDescription=A stable connection to the server could not be established.}
这个错误可以从以下三个方面尝试解决:
1.hostname不存在,或者拼写错误,修改hostname;该hostname不一定是 imap.**.com,我项目中用到的hostname是 10.101.10.1(主机名)。
2.需要SSL安全链接,将connectionType设置为MCOConnectionTypeTLS;
3.端口号错误。
相关文章推荐
已有家长中招!“录取通知书”邮件暗藏骗局2022-09-06
连接企微和钉钉,新网全球邮助力企业协同办公2022-09-27
快速申请搭建免费企业邮箱的教程2022-09-16
如何避免你的外贸开发信被当成垃圾邮件?2022-09-14
2021年,全国企业邮箱用户共收发邮件约7637.7亿封2022-09-13