使用 MailGun 快速发送电子邮件

2023-11-30

Problem

我想使用MailGun从纯 Swift 应用程序发送电子邮件的服务。

迄今为止的研究

据我了解,有两种发送电子邮件的方法通过邮件枪。一种是向 MailGun 发送电子邮件,MailGun 将重定向它(请参阅通过 SMTP 发送)。据我了解,这不起作用,因为 iOS 无法以编程方式自动发送邮件,并且必须使用需要用户干预的方法。因此,我应该直接使用 API。据我了解,我需要打开一个 URL 来执行此操作,因此我应该使用某种形式NSURLSession, 按照这个答案

Code

MailGun提供了Python的文档,如下:

def send_simple_message():
return requests.post(
    "https://api.mailgun.net/v3/sandbox(Personal info).mailgun.org/messages",
    auth=("api", "key-(Personal info)"),
    data={"from": "Excited User <(Personal info)>",
          "to": ["[email protected]", "(Personal info)"],
          "subject": "Hello",
          "text": "Testing some Mailgun awesomness!"})

用(个人信息)代替密钥/信息/电子邮件。

Question

我如何在 Swift 中做到这一点?

Thanks!


在Python中,auth正在标头中传递。

您必须执行 http post 请求,同时传递标头和正文。

这是一个工作代码:

func test() {
        let session = NSURLSession.sharedSession()
        let request = NSMutableURLRequest(URL: NSURL(string: "https://api.mailgun.net/v3/sandbox(Personal info).mailgun.org/messages")!)
        request.HTTPMethod = "POST"
        let data = "from: Excited User <(Personal info)>&to: [[email protected],(Personal info)]&subject:Hello&text:Testinggsome Mailgun awesomness!"
        request.HTTPBody = data.dataUsingEncoding(NSASCIIStringEncoding)
        request.setValue("key-(Personal info)", forHTTPHeaderField: "api")
        let task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in

            if let error = error {
                print(error)
            }
            if let response = response {
                print("url = \(response.URL!)")
                print("response = \(response)")
                let httpResponse = response as! NSHTTPURLResponse
                print("response code = \(httpResponse.statusCode)")
            }


        })
        task.resume()
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MailGun 快速发送电子邮件 的相关文章

随机推荐

  • 太多的回溯:为什么这里有“重做”?

    我正在 Prolog 中做一个非常简单的练习 但跟踪中有些东西我不明白 该程序是一个 大于 gt 对表示为后继的整数 greater than succ 0 greater than succ A succ B greater than A
  • 如何清除p:dataTable中的所有输入字段?

    我将 JSF 2 0 与 PrimeFaces 一起使用 我有一个
  • CSS 位置 - 顶部 100% 不等于底部 0

    我在分配时注意到了这一点fixed定位到 css3 动画的元素 即top 100 没有得到相同的效果bottom 0 它定位文档外部的元素 而bottom 0 仍然显示整个元素 JSFiddle演示 css位置有相反的吗top 0 这会自动
  • Yocto 中支持 PHP 的 Apache2

    我正在使用 Yocto 创建一个包含 apache2 的构建 但我很难添加 php 支持 我之前运行过它 阅读 去年 但从那时起 meta openembedded 中的meta webserver 层发生了变化 来自元网络服务器中的自述文
  • 将外部 javascript 导入到 google apps 脚本 [重复]

    这个问题在这里已经有答案了 我正在尝试从 Google 电子表格 Google 文档 使用 Trello 但不确定如何导入 引用 链接使用其库所需的 javascript 文件 我唯一的其他选择是直接使用他们的 REST API 很好 但我
  • 如何在Tensorflow中将字符串张量转换为Python字符串?

    以下代码是批量数据提供程序 mat文件 但运行时出现以下问题 TypeError expected str bytes or os PathLike object not FIFOQueue 代码是 import numpy as np i
  • 强制绑定DataGridView生成列和行

    我以编程方式创建一个 DataGridView 对象 然后使用网格的 DataSource 属性将其绑定到 DataTable 创建网格后 我将其添加到 WinForms 的控件集合中 即 Form1 Controls Add grid 我
  • 银行式导航限制

    某些网络应用程序 尤其是银行网站 会阻止您使用浏览器的导航按钮 在新选项卡中打开链接甚至刷新页面 通常他们会警告您不要这样做 甚至终止会话 迫使您再次登录 他们是否遵循特定的架构模式来实现这一目标 他们的目标是什么 这如何提高安全性 他们可
  • 桌面 SWING 应用程序上的 jpa

    我正在使用 SWING 开发一个单用户桌面应用程序 我对这种使用 java sql api 的应用程序有一点经验 并发现它一点也不舒服 在我的新应用程序中 我第一次尝试使用 JPA 我阅读了很多教程 这些教程使我几乎了解了我需要的所有内容
  • 无法启用spring框架的日志记录

    我想在Spring框架和Spring Security中配置日志记录 然后按照这个http docs spring io spring docs 3 2 x spring framework reference html overview
  • 自动布局以编程方式修改约束乘数

    如何以编程方式修改约束乘数 我设置了以下内容 self view addConstraint NSLayoutConstraint constraintWithItem button attribute NSLayoutAttributeW
  • 如何使用VC++更改桌面背景

    我目前正在尝试使用 SystemParametersInfo 更改桌面背景 当我输入我的内容时 vs 不会给我任何错误 但是当我运行程序时 我收到带有黄色三角形的警告 它说 KernelBase dll 抛出了某种异常 然后它说某些 PDB
  • 如何使用检测打印 Java 运行时调用的所有方法?

    我想打印出在运行时调用的所有方法 它们应该按照调用的顺序打印出来 如果多次调用它们 则应该打印多次 这可用于逆向工程 查看当您按下按钮或执行特定操作时调用哪些函数 我想为此使用 Java 代理和仪器 这可以使用 Java 代理和检测库来完成
  • 在 vbscript 中逐字节读取文件

    我正在寻找一种使用 VBScript 大 1 GB 读取大二进制文件的方法 我无法直接读取它ReadAll因为文件太大 所以我正在寻找一种在循环中读取它的方法 就像在 C 中一样 所以我想读取 X 个字节 处理它们 我不需要完整的文件来完成
  • MySQL单语句合并两个表

    我确信这个问题已经被问过 回答了 但我不知道这种操作是如何调用的 而且我的 SQL 知识是有限的 我正在寻找一个 SQL 语句来合并两个表 表用户 ID hash 1 abc 2 def 3 ghi 和 USER FIELD 表 ID us
  • 我可以阻止 iPhone OS 3.x 应用程序在 2.x 操作系统上运行吗?

    我不希望我的应用程序在运行 3 0 之前的任何操作系统的 iPhone 或 iPod 上运行 我的印象是应用程序商店会帮我处理这个问题 但我认为事实并非如此 提醒用户然后退出的最佳方法是什么 最好是 我希望在用户购买我的应用程序之前发生这种
  • 从 firebase 中的数组获取值[重复]

    这个问题在这里已经有答案了 我想从数组字段中获取值 但我收到一个错误 没有为类型 Object 定义运算符 文档 尝试定义运算符 from this codevar followSitesList value data followedSi
  • 部署在 apache 服务器上的 Dash 失败并显示“Dash 对象不可调用”

    我正在尝试将 python dash 应用程序部署到我的 apache 服务器 我遵循了我能找到的有关此配置的少量信息 官方文档 这个故障排除线程好一点 当我访问该网站时 页面返回一个500 Internal Server Error 被描
  • 将配置参数保存到存储库

    我刚刚开始使用 git ftp 它允许我将提交推送到 FTP 服务器 FTP 凭据以这种方式存储在 git config 中 git ftp user myusername url ftp myserver com httpdocs pas
  • 使用 MailGun 快速发送电子邮件

    Problem 我想使用MailGun从纯 Swift 应用程序发送电子邮件的服务 迄今为止的研究 据我了解 有两种发送电子邮件的方法通过邮件枪 一种是向 MailGun 发送电子邮件 MailGun 将重定向它 请参阅通过 SMTP 发送