skpsmtpmessage 是ios第三方后台发送邮件库 https://github.com/jetseven/skpsmtpmessage.git

1、由于skpsmtpmessage是非ARC文件,所以要在 SKPSMTPMessage和 NSData+Base64Additions中添加

Your Target -> Get Info -> Build -> All Configurations -> Other Link Flags: -fno-objc-arc 标识

2、导入cfnetwork.frame框架

  导入头文件#import "SKPSMTPMessage.h"  #import "NSData+Base64Additions.h"

  SKPSMTPMessageDelegate协议,并实现两个协议方法

3、开始发送邮件

// 发送邮件
- (IBAction)sendEmail { SKPSMTPMessage *testSend = [[SKPSMTPMessage alloc]init];
testSend.fromEmail = @"发送邮箱账号";
testSend.toEmail = @"接收邮箱账号";
testSend.relayHost = @"smtp.ym.163.com";
testSend.requiresAuth = YES;
testSend.login = @"发送邮箱账号";
testSend.pass = @"发送邮箱密码";
testSend.subject = [NSString stringWithCString:"测试" encoding:NSUTF8StringEncoding];
// testSend.ccEmail = @"抄送人邮箱"; // 可不填
testSend.wantsSecure = YES;
testSend.delegate = self; NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain; charset=UTF-8;\nThis is a test Email",kSKPSMTPPartContentTypeKey,
@"This is a test message.",kSKPSMTPPartMessageKey,@"8bit",kSKPSMTPPartContentTransferEncodingKey,nil]; testSend.parts = [NSArray arrayWithObjects:plainPart, nil];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[testSend send];
}); }

// 回调方法

- (void)messageSent:(SKPSMTPMessage *)message
{
NSLog(@"messageSuccessed-----%@", message);
} - (void)messageFailed:(SKPSMTPMessage *)message error:(NSError *)error
{
NSLog(@"messageFailed-----message - %@\nerror - %@", message, error);
}

4、Tip:关于relayHost参数:smtp.ym.163.com(网易企业邮箱)smtp.163.com(网易邮箱)。具体其他邮箱服务器地址查看帮助中心。

ios 后台发送邮件之SKPSMTPMessage的使用的更多相关文章

  1. [原]IOS 后台发送邮件

    skpsmtpmessage 是ios第三方后台发送邮件库 https://github.com/jetseven/skpsmtpmessage.git -(void)statrUpLoad:(id) ...

  2. iOS 后台处理

    iOS 后台处理的常见用途 1.进入后台时候删除资源:应用处于挂起状态的时候所占用的资源越少,该应用被iOS终止的风险就越低.通过从内存中清理那些易于重新创建的资源,可以增加应用驻留内存的机会,因此可 ...

  3. iOS后台定位实现

    iOS后台定位实现 (2013-01-24 16:43:12)     工作中碰到一个定位的应用场景:app需要在后台运行,实时上传用户地理位置.   苹果对iOS的规范性在提升了app的品质的同时也 ...

  4. iOS 后台运行 类型

    iOS后台运行,需要有特定的类型才可以进行.这些内容并不是一直不变的,苹果也在逐步的更新这些内容. 本文内容是2015年11月03日时苹果支持的后台运行类型. 这是官方连接地址 其中较为重要的是下面这 ...

  5. iOS后台运行

    http://www.cocoachina.com/bbs/read.php?tid=149564 文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后 ...

  6. IOS 后台执行

    在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间 ...

  7. iOS 后台运行实现 --备用

    文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 ...

  8. iOS 后台定位被拒注意事项

    iOS 后台定位被拒的原因很简单就是没有达到苹果对后台定位的要求. 本地要求: 1.在plist文件中添加字段 "Privacy - Location Always Usage Descri ...

  9. Android 后台发送邮件 (收集应用异常信息+Demo代码)

    上一次说了如何收集我们已经发布的应用程序的错误信息,方便我们调试完善程序.上次说的收集方法主要是把收集的信息通过Http的post请求把相关的异常信息变成请求参数发送到服务器.这个对做过web开发的人 ...

随机推荐

  1. Java相关文章

    servlet/filter/listener/interceptor区别与联系 web.xml配置详解 在Eclipse中使用JUnit4进行单元测试(初级篇) 单点登录原理与简单实现 spring ...

  2. happyxiaofan的程序员书单

    转自   happyxiaofan 读书的看法 从15年7月至今,研究生期间读了不少书,读书让我学到了很多,也是提升技术能力的一个重要手段.可能很多人嫌读书太花时间,曾经的我一度也是这么认为的,觉得一 ...

  3. b2BuoyancyController 使用浮力

    package{ import Box2D.Collision.b2AABB; import Box2D.Collision.b2RayCastInput; import Box2D.Collisio ...

  4. ReactiveX 学习笔记(5)合并数据流

    Combining Observables 本文的主题为合并 Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操作符(四)Combining An ...

  5. Linux创建SSH信任关系

    Linux服务器创建信任关系可以解决远程执行命令.远程传输文件多次手工输入的麻烦.可以实现环境一键打包备份. 测试环境 SuSE 手工创建 假设服务器A与B间要建立信任关系.用户想从服务器A免密码登录 ...

  6. python桌面端开发手记(序列化、压缩包、加密、图形界面GUI)

    0x00   前段时间接到一个小项目是给某行业内部开发离线桌面端,业务流实现上总体分信息录入.加密导出.因为是win桌面端,所以老板说依托Access用VBA做,我据理力争了一下.之前就是用Acces ...

  7. Matlab实现BP网络识别字母

    训练样本空间   每个样本使用5×5的二值矩阵表征一个字母.一共10个字母类型,分别是N,I,L,H,T,C,E,F,Z,V.每个字母9个样本.共90个. N1=[1,0,0,0,1; 1,0,0,0 ...

  8. jndi 小案例

    JNDI就是为JAVA中命名和目录服务定义的JAVA API,是命名服务的抽象机制.在J2EE中,JNDI的目的是用来查找J2EE服务器的注册资源.只要该对象在命名服务器上注册过,且你知道命名服务器的 ...

  9. C#导出Excel,某单元格内容长度超过255 的解决方法

    public static void ToExcel(DataTable dtSource, string strPath, string strSheetName) { System.Data.Ol ...

  10. js基础-类型转换

    显示类型转换 Number() 将任意类型转换数值类型 true 1 false 0 Number(null) => 0 Number(undefined) => NAN Number(' ...