如何使用 Mailgun 在 Swift 中发送电子邮件
How to send emails in Swift using Mailgun
我需要在我正在处理的 Swift 项目中发送自动电子邮件。到目前为止,我最好的领导似乎是使用 Mailgun。 (如果有人喜欢其他东西,我愿意接受更好的选择)
Swift 未在 Mailgun API 文档中列出,我也没有看到 objective-c。我发现的唯一一篇关于他的文章是 one.
更新
我一直在尝试将所有内容拼凑起来,这就是我到目前为止的进展。
我能够通过 cocoapods 安装 Mailgun。在 Swift 中使用它有点棘手。
我使用以下 pod 文件设置 cocoapods:
target 'TestApp' do
pod 'mailgun', '~> 1.0.3'
end
target 'TestAppTests' do
end
有了这个 podfile,我能够 运行 pod 安装并设置依赖项。然后我在构建设置中设置了一个 Objective-C-Bridging Header。我使用了以下 objective-C 桥接头。
#ifndef Promises_Promises_Bridging_Header_h
#define Promises_Promises_Bridging_Header_h
#import <mailgun/Mailgun.h>
#import "testMail.h"
#endif
我有一段时间遇到链接错误,但我需要通过工作区打开项目,我必须转到 Product -> Schemes -> Edit Schemes 和将 Pods-mailgun 添加到列表顶部,然后它会让我构建。
现在我想利用 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! ☃"];
至此我已经回答了我自己的问题。这个过程并不太可怕。使用 cocoapods 安装 mailgun。
Link 使用 objective-c 桥接头所需的 objective-c 代码。
创建一个 objective 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 头文件。我创建了一个实现 sendMail 方法并从 API 调用代码的 .m 文件,效果很好。唯一可能具有挑战性的事情是设置 mailgun 帐户并配置您的域以便可以发送电子邮件,但这与代码无关。
我想我面临着与您完全相同的问题。但我对您使用了多少 .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 中,您有(比如在按钮中)这个:
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 一边,您可以尝试另一种选择:
如果您还没有桥接头,请创建一个虚拟 objective-c 文件(将新文件添加到项目中)。 Xcode 会询问你是否要添加头文件(这会自动为你整理出头文件)
将此添加到您的桥接头(前提是您已经使用 cocoa pods 导入了邮件枪):
#import "mailgun/Mailgun.h"
在您的 swift class 中导入 maligun:
import mailgun
只需像在 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! ☃")
}
我需要在我正在处理的 Swift 项目中发送自动电子邮件。到目前为止,我最好的领导似乎是使用 Mailgun。 (如果有人喜欢其他东西,我愿意接受更好的选择)
Swift 未在 Mailgun API 文档中列出,我也没有看到 objective-c。我发现的唯一一篇关于他的文章是 one.
更新
我一直在尝试将所有内容拼凑起来,这就是我到目前为止的进展。
我能够通过 cocoapods 安装 Mailgun。在 Swift 中使用它有点棘手。
我使用以下 pod 文件设置 cocoapods:
target 'TestApp' do
pod 'mailgun', '~> 1.0.3'
end
target 'TestAppTests' do
end
有了这个 podfile,我能够 运行 pod 安装并设置依赖项。然后我在构建设置中设置了一个 Objective-C-Bridging Header。我使用了以下 objective-C 桥接头。
#ifndef Promises_Promises_Bridging_Header_h
#define Promises_Promises_Bridging_Header_h
#import <mailgun/Mailgun.h>
#import "testMail.h"
#endif
我有一段时间遇到链接错误,但我需要通过工作区打开项目,我必须转到 Product -> Schemes -> Edit Schemes 和将 Pods-mailgun 添加到列表顶部,然后它会让我构建。
现在我想利用 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! ☃"];
至此我已经回答了我自己的问题。这个过程并不太可怕。使用 cocoapods 安装 mailgun。 Link 使用 objective-c 桥接头所需的 objective-c 代码。 创建一个 objective 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 头文件。我创建了一个实现 sendMail 方法并从 API 调用代码的 .m 文件,效果很好。唯一可能具有挑战性的事情是设置 mailgun 帐户并配置您的域以便可以发送电子邮件,但这与代码无关。
我想我面临着与您完全相同的问题。但我对您使用了多少 .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 中,您有(比如在按钮中)这个:
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 一边,您可以尝试另一种选择:
如果您还没有桥接头,请创建一个虚拟 objective-c 文件(将新文件添加到项目中)。 Xcode 会询问你是否要添加头文件(这会自动为你整理出头文件)
将此添加到您的桥接头(前提是您已经使用 cocoa pods 导入了邮件枪):
#import "mailgun/Mailgun.h"
在您的 swift class 中导入 maligun:
import mailgun
只需像在 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! ☃") }