从共享表(ios)设置电子邮件发件人和收件人

Posted

技术标签:

【中文标题】从共享表(ios)设置电子邮件发件人和收件人【英文标题】:Setting email sender and recipient from share sheet (ios) 【发布时间】:2016-08-16 21:38:57 【问题描述】:

目标:实现一个包含 Gmail 作为选项的共享表 (UIActivityViewController),并设置收件人和主题

问题:设置主题有效,但设置收件人(forKey:“to”)使程序崩溃。

我希望能够设置共享表电子邮件客户端的发件人和收件人字段,但到目前为止我还没有找到任何方法来做到这一点。任何帮助表示赞赏!

相关代码:

let email = ["bob@bobsCompany.com"]
let activityVC = UIActivityViewController(activityItems: [""], applicationActivities: nil)

activityVC.excludedActivityTypes = excludedActivity

activityVC.setValue("Subject Title", forKey: "subject")

activityVC.setValue(email[0], forKey: "to")

activityVC.popoverPresentationController?.sourceView = self.view
self.presentViewController(activityVC, animated: true, completion: nil)

【问题讨论】:

查看这个问题***.com/questions/17020288/…另外还有UIActivityItemSource的文档developer.apple.com/library/ios/documentation/UIKit/Reference/…: 【参考方案1】:

您只能为 UIActivityViewController 设置主题。程序崩溃是因为没有“to”键。如果要设置收件人和发件人字段,则必须使用 MailMFComposeViewController。

    if !MFMailComposeViewController.canSendMail()
    
      let alertMsg = UIAlertController(title: "Test", message: "Mail services not available.", preferredStyle: UIAlertControllerStyle.Alert)
      alertMsg.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
      self.presentViewController(alertMsg, animated: true, completion: nil)
    
    else
    
      let composeVC = MFMailComposeViewController()
      composeVC.mailComposeDelegate = self

      // Configure the fields of the interface.
      composeVC.setToRecipients(["mail@egmail.com"])
      composeVC.setSubject("Subject)
      composeVC.setMessageBody("Hi.", ishtml: false)

      // Present the view controller modally.
      self.presentViewController(composeVC, animated: true, completion: nil)
    

【讨论】:

以上是关于从共享表(ios)设置电子邮件发件人和收件人的主要内容,如果未能解决你的问题,请参考以下文章

收件人上的 EWS 通知电子邮件地址已读取

贝宝捐赠的通知到别处而不是指定的收件人

如何使用存储在 Excel 中的地址向多个收件人发送电子邮件?

如何启动消息应用程序并在颤动中以编程方式使用默认电子邮件地址设置“收件人”字段(目的地)?

从 PHP 发送 MIME 电子邮件时,Exim 会覆盖“发件人”标头

如何在 iOS 6 中为 UIActivityViewController 设置收件人?