如何使用Mailgun在Swift中发送电子邮件

我有需要在我正在处理的Swift项目中发送自动电子邮件。 到目前为止,我最好的领导似乎是使用Mailgun。 (如果有人喜欢别的东西,我可以select更好的select)

Swift未在其文档中的Mailgun API参考中列出,我也没有看到Objective-C。 唯一一篇关于他发现的文章就是这个。

更新

我一直在拼凑一切,这是迄今为止我已经得到的地方。

我可以通过cocoapods安装Mailgun。 在Swift中使用它有点棘手。

我用下面的pod文件设置cocoapods:

target 'TestApp' do pod 'mailgun', '~> 1.0.3' end target 'TestAppTests' do end 

有了这个podfile,我可以运行pod安装并设置依赖关系。 然后我在构build设置中设置Objective-C-Bridging标题。 我使用了下面的目标-C桥接头。

 #ifndef Promises_Promises_Bridging_Header_h #define Promises_Promises_Bridging_Header_h #import <mailgun/Mailgun.h> #import "testMail.h" #endif 

我得到了一段时间的链接错误,但我需要通过工作区打开项目,我不得不去产品 – >scheme – >编辑scheme,并添加Pods-mailgun到列表的顶部,然后它会让我build立。

现在我想利用MailGun API。 文档说要做以下事情。

 Mailgun *mailgun = [Mailgun clientWithDomain:@"samples.mailgun.org" apiKey:@"key-3ax6xnjp29jd6fds4gc373sgvjxteol0"]; [mailgun sendMessageTo:@"Jay Baird <jay.baird@rackspace.com>" from:@"Excited User <someone@sample.org>" subject:@"Mailgun is awesome!" body:@"A unicode snowman for you! ☃"]; 

我想我正面临与你完全一样的问题。 但是我对你已经使用了多less.h和.m文件以及每个文件包含了什么有点困惑。 我对obj C无能为力,所以我试图盲目追随你。

纠正我,如果我错了。

•您有一个.h桥接头文件,其中包含:

 // // Use this file to import your target's public headers that you would like to expose to Swift. // #import "AFNetworking.h" #import <mailgun/Mailgun.h> 

?您有一个.m文件,其中包含:

 #import <Foundation/Foundation.h> #import <mailgun/Mailgun.h> @interface mailTest: NSObject - (void) sendMail: (NSString*)email; @end 

•在你的Viewcontroller.swift中(让我们来说一个button):

 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } @IBAction func myButton(sender: UIButton) { var test: mailTest = mailTest() test.sendMail("testemail@testemail.com") } } 

那是对的吗?

如果您希望尽可能地在Swift上面,还有另外一个可以尝试的select:

  1. 如果您还没有桥接头,请创build一个虚拟的objective-c文件(将新文件添加到项目中)。 Xcode会询问你是否想要添加一个头文件(这将自动为你sorting头)

  2. 把这个添加到你的#import "mailgun/Mailgun.h" (提供你已经用cocoa pod导入的邮件枪): #import "mailgun/Mailgun.h"

  3. 在swift类中import mailgunimport mailgun

  4. 就像在Objective-C中一样,在swift中简单使用mailgun的API:

     @IBAction func sendEmail(_ sender: Any) { let mailgun = Mailgun.client(withDomain: "samples.mailgun.org", apiKey: "key-3ax6xnjp29jd6fds4gc373sgvjxteol0") mailgun?.sendMessage(to: "Jay Baird <jay.baird@rackspace.com>", from: "Excited User <someone@sample.org>", subject: "Mailgun is awesome!", body: "A unicode snowman for you! ☃") } 

在这一点上,我已经回答了我自己的问题。 这个过程并不太可怕。 使用cocoapods安装mailgun。 使用Objective-C桥接头来链接所需的Objective-C代码。 创build一个客观的c文件来存放你的方法,它将调用mailgun操作,并使用它。

 #import <Foundation/Foundation.h> #import <mailgun/Mailgun.h> @interface mailTest: NSObject - (void) sendMail: (NSString*)email; @end 

然后在我的swift代码中,我只是打电话给:

  var test: mailTest = mailTest() test.sendMail("testemail@testemail.com") 

这是mailTest头文件。 我创build了一个实现sendMail方法的.m文件,并从API中调用代码,它工作的很好。 唯一可能会遇到的挑战是设置邮件帐户并configuration域名,以便发送电子邮件,但这不是代码相关的。