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

时间:2015-04-15 04:18:43

标签: ios objective-c email swift 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 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! ☃"];

3 个答案:

答案 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端,可以尝试另一种选择:

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

  2. 将此添加到您的桥接标题中(假设您已经使用可可豆荚导入了邮件枪): #import "mailgun/Mailgun.h"

  3. 在快速课程中导入恶意攻击: import mailgun

  4. 只需在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帐户并配置您的域,以便可以发送电子邮件,但这与代码无关。