我需要在我正在处理的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 install并设置依赖项。然后我在构建设置中设置了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 - &gt;方案 - &gt;编辑方案并将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! ☃"];
答案 0 :(得分:2)
我认为我面临着与你完全相同的问题。但是我对你使用了多少.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")
}
}
这是对的吗?
答案 1 :(得分:2)
如果您希望尽可能多地使用Swift端,可以尝试另一种选择:
如果您还没有桥接标头,请创建一个虚拟的objective-c文件(将新文件添加到项目中)。 Xcode将询问您是否要添加头文件(这将自动为您排序标题)
将此添加到您的桥接标题中(假设您已经使用可可豆荚导入了邮件枪):
#import "mailgun/Mailgun.h"
在快速课程中导入恶意攻击:
import mailgun
只需在swift中使用mailgun的API,就像在Objective-C中一样:
@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! ☃")
}
答案 2 :(得分:0)
此时我已经回答了我自己的问题。这个过程并不太可怕。使用cocoapods安装mailgun。 使用objective-c桥接头链接所需的objective-c代码。 创建一个目标c文件来存放将调用mailgun操作的方法,然后使用它。
#import <Foundation/Foundation.h>
#import <mailgun/Mailgun.h>
@interface mailTest: NSObject
- (void) sendMail: (NSString*)email;
@end
然后在我的快速代码中,我只是打电话:
var test: mailTest = mailTest()
test.sendMail("testemail@testemail.com")
这是mailTest头文件。我创建了一个实现sendMail方法的.m文件,并从API调用代码,它运行良好。唯一可能具有挑战性的事情是设置mailgun帐户并配置您的域,以便可以发送电子邮件,但这与代码无关。