ios - 如何使用 swift 在 ios 设备上发送自动电子邮件?

标签 ios swift parse-platform mailgun

当用户在我的 IOS 应用程序上创建帐户时,我想自动向他发送一封“谢谢”电子邮件,我该怎么做?我看到一个叫mailgun.com的公司,但是他们不支持swift。 Parse 支持这个吗?我该怎么办?

如果 parse 支持这个,请包含一个链接以了解如何设置它。 这是我将使用的代码。

self.loginComplete("example@example.com")
func loginComplete(Email:String) {

\\send automatic email to the user.



}

最佳答案

正如 Duncan C 已经提到的,您无法从您的 iOS 应用程序发送电子邮件。唯一可能的解决方案是使用提供 API 的服务器来发送电子邮件。

如果你想使用 mailgun.com,我已经做了一个示例代码:

let request: NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: "https://api.mailgun.net/v3/{YOUR SANDBOX DOMAIN}/messages")!)
request.HTTPMethod = "POST"

// Basic Authentication
let username = "api"
let password = "{YOUR API-KEY}"
let loginString = NSString(format: "%@:%@", username, password)
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64LoginString = loginData.base64EncodedStringWithOptions([])
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")

let bodyStr = "from=Mailgun Sandbox <{YOUR SANDBOX DOMAIN}>&to=Receiver name <{YOUR RECEIVER EMAIL}>&subject=Test&text=thank you!"

// appending the data       
request.HTTPBody = bodyStr.dataUsingEncoding(NSUTF8StringEncoding);

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
    // ... do other stuff here
})

task.resume()

objective-c

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://api.mailgun.net/v3/{YOUR SANDBOX DOMAIN}/messages"]];
request.HTTPMethod = @"POST";

NSString *username = @"api";
NSString *password = @"{YOUR API-KEY}";
NSString *loginString = [NSString stringWithFormat:@"%@:%@", username, password];
NSData *loginData = [loginString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64LoginString = [loginData base64EncodedStringWithOptions:0];
NSString *requestValue = [NSString stringWithFormat:@"Basic %@", base64LoginString];
[request setValue:requestValue forKey:@"Authorization"];

NSString *bodyStr = @"from=Mailgun Sandbox <{YOUR SANDBOX DOMAIN}>&to=Receiver name <{YOUR RECEIVER EMAIL}>&subject=Test&text=thank you!";

// appending the data
request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];

NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    // ... do other stuff here
}];

[task resume];

注意

由于新的 App Transport Security,您必须向指定 Mailgun API 的 Info.plist 文件添加声明,因为在撰写本文时它们不支持最新的 SSL 技术.这是一个链接和一个示例配置:

<key>NSAppTransportSecurity</key>   
<dict>      
    <key>NSExceptionDomains</key>       
    <dict>          
        <key>mailgun.net</key>  
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>        
        </dict>     
    </dict>     
</dict>

关于ios - 如何使用 swift 在 ios 设备上发送自动电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30358803/

相关文章:

swift - 如何测试 Swift 枚举与关联值的相等性

ios - EXC_BREAKPOINT 代码和子代码的含义是什么?

ios - 一般如何使用 iOS 14 单元格内容配置?

ios - 为什么我在将数据从一个 View Controller 传递到另一个 View Controller 时收到 nil?

ios - 将alamofire响应解析为JSON返回nil

azure - 在 Azure 上托管 Parse - 内部服务器错误

android - 在 Android 中使用 Parse API 上传和保存视频文件不成功

ios - 我在 Storyboard中创建了一个按钮,并以编程方式设置图像,但出现错误,为什么?

ios - 使用选项卡栏关闭 View Controller 后动画不会停止

ios - 无论框架的 x 和 y 为何,UIView 始终位于屏幕底部 - Swift