2014年3月30日 星期日

人從出生起就在邁向死亡

這個過程是漫長的,以至於多數人都沒有感覺,
渾渾噩噩度過每一天。
因為沒有壓力,就沒有進步,
慢活是現今潮流,
是否也代表了這一世代的人不思進取,
所以才會有尼特族產生,
資訊過多,現代的人面對的不是紅綠燈,不是十字路口,
而是七色燈,米字路口,
迷失在過度資訊裡而無從選擇,
許多資訊都是經過包裝的,
現代人又習慣速食文化,
被蒙蔽的程度只會日益加鉅,
誠如我以前講的,
不斷的解決問題,結果產生更多的問題,
選擇走那一條路,已經越來越困難了,
不選擇的話,又註定被淘汰。

2014年3月26日 星期三

使用iOS开源库SKPSMTPMessage实现邮件发送

http://blog.csdn.net/aldridge1/article/details/18766515

iOS下发邮件目前有两种方式,利用openURL打开iOS email app和利用MFMailComposeViewController在app内弹出email界面实现邮件发送。这两种方式搜索一下都有很多介绍,具体就不细说了。下面介绍第三种方式,利用开源库SKPSMTPMessage实现邮件发送。其实这种方式也有不少文章介绍了,只是看了一些文章,写得都差不多,都是贴demo里面的代码,没有我需要的发送图片和视频附件的功能。研究和查阅了一些资料,将代码综合一下,粘贴出来方便自己和有需要的人查阅。
SKPSMTPMessage开源库下载地址:
https://github.com/jetseven/skpsmtpmessage
发送邮件,包含附件代码如下:


  1. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  2. SKPSMTPMessage *testMsg = [[SKPSMTPMessage alloc] init];
  3. testMsg.fromEmail = [defaults objectForKey:@"fromEmail"];
  4. testMsg.toEmail = [defaults objectForKey:@"toEmail"];
  5. testMsg.bccEmail = [defaults objectForKey:@"bccEmal"];
  6. testMsg.relayHost = [defaults objectForKey:@"relayHost"];
  7. testMsg.requiresAuth = [[defaults objectForKey:@"requiresAuth"] boolValue];
  8. if (testMsg.requiresAuth) {
  9. testMsg.login = [defaults objectForKey:@"login"];
  10. testMsg.pass = [defaults objectForKey:@"pass"];
  11. }
  12. testMsg.wantsSecure = [[defaults objectForKey:@"wantsSecure"] boolValue]; // smtp.gmail.com doesn't work without TLS!
  13. testMsg.subject = @"SMTPMessage Test Message";
  14. //testMsg.bccEmail = @"testbcc@test.com";
  15. // Only do this for self-signed certs!
  16. // testMsg.validateSSLChain = NO;
  17. testMsg.delegate = self;
  18. //文字信息
  19. NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain",kSKPSMTPPartContentTypeKey,
  20. @"This is a tést messåge.",kSKPSMTPPartMessageKey,@"8bit",kSKPSMTPPartContentTransferEncodingKey,nil];
  21. //联系人信息
  22. NSString *vcfPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"vcf"];
  23. NSData *vcfData = [NSData dataWithContentsOfFile:vcfPath];
  24. NSDictionary *vcfPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/directory;\r\n\tx-unix-mode=0644;\r\n\tname=\"test.vcf\"",kSKPSMTPPartContentTypeKey,
  25. @"attachment;\r\n\tfilename=\"test.vcf\"",kSKPSMTPPartContentDispositionKey,[vcfData encodeBase64ForData],kSKPSMTPPartMessageKey,@"base64",kSKPSMTPPartContentTransferEncodingKey,nil];
  26. //图片和视频附件
  27. //attach image
  28. NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"jpg"];
  29. NSData *imgData = [NSData dataWithContentsOfFile:imgPath];
  30. NSDictionary *imagePart = [NSDictionary dictionaryWithObjectsAndKeys:@"image/jpg;\r\n\tx-unix-mode=0644;\r\n\tname=\"test.jpg\"",kSKPSMTPPartContentTypeKey,
  31. @"attachment;\r\n\tfilename=\"test.jpg\"",kSKPSMTPPartContentDispositionKey,[imgData encodeBase64ForData],kSKPSMTPPartMessageKey,@"base64",kSKPSMTPPartContentTransferEncodingKey,nil];
  32. //attach video
  33. NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"];
  34. NSData *videoData = [NSData dataWithContentsOfFile: videoPath];
  35. NSDictionary *videoPart = [NSDictionary dictionaryWithObjectsAndKeys:@"video/quicktime;\r\n\tx-unix-mode=0644;\r\n\tname=\"video.mov\"",kSKPSMTPPartContentTypeKey,
  36. @"attachment;\r\n\tfilename=\"video.mov\"",kSKPSMTPPartContentDispositionKey,[videoData encodeBase64ForData],kSKPSMTPPartMessageKey,@"base64",kSKPSMTPPartContentTransferEncodingKey,nil];
  37. testMsg.parts = [NSArray arrayWithObjects:plainPart,vcfPart, imagePart, videoPart, nil];
  38. [testMsg send];


代码是在Demo基础上修改,经过测试,可以正常发送带附件的email。

iOS SMTP发送邮件开源项目[SKPSMTPMessage]

http://blog.csdn.net/huanghr_1/article/details/8457387

iPhone Coding Notes ~我的iPhone程式筆記~

http://bonjouryentinglai.wordpress.com/page/3/