email - 向消息正文添加额外的字符串(swift)

标签 email swift uitextfield mfmailcomposeviewcontroller

我的电子邮件工作正常。我唯一需要做的就是在我的邮件正文中添加一个额外的字符串。例如,我想将 Name: 和文本字段添加到我的邮件正文中。像这样的东西。

姓名:约翰·史密斯

电话:566-654-6577

邮箱:Smith@smith.com

目前,消息正文仅显示以下内容。

约翰·史密斯

566-654-6577

Smith@smith.com

import UIKit
import MessageUI


class EmailTableViewController: UITableViewController, MFMailComposeViewControllerDelegate, UITextFieldDelegate {


    @IBOutlet weak var name: UITextField!

    @IBOutlet weak var phone: UITextField!

    @IBOutlet weak var email: UITextField!


    func appendTextFromTextField(string: String, textField: UITextField) -> String {
        return string + textField.text + "\n \n"
    }


    @IBAction func SendEmailButton(sender: AnyObject) {


        var fields: [UITextField] = [name, phone, email]
        var messageBody = ""

        for f in fields {
            messageBody = appendTextFromTextField(messageBody, textField: f)
        }

        var emailTitle = "Interface Information"
        var toRecipents = [""]
        var mc: MFMailComposeViewController = MFMailComposeViewController()
        mc.mailComposeDelegate = self
        mc.setSubject(emailTitle)
        mc.setMessageBody(messageBody, isHTML: false)
        mc.setToRecipients(toRecipents)
        self.presentViewController(mc, animated: true, completion: nil)

    }

    func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
        switch result.value {
        case MFMailComposeResultCancelled.value:
            println("Mail cancelled")
        case MFMailComposeResultSaved.value:
            println("Mail saved")
        case MFMailComposeResultSent.value:
            println("Mail sent")
        case MFMailComposeResultFailed.value:
            println("Mail sent failure: %@", [error.localizedDescription])
        default:
            break
        }
        self.dismissViewControllerAnimated(true, completion: nil)

    }

    override func viewDidLoad() {



        super.viewDidLoad()

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }




}

最佳答案

删除 for 循环并尝试用这个方法替换您的方法:

@IBAction func sendEmailButton(sender: UIButton) {
        var messageBody = "Name:\(name.text)\nPhone:\(phone.text)\nEmail:\(email.text) "
        var emailTitle = "Interface Information"
        var toRecipents = [""]
        var mc: MFMailComposeViewController = MFMailComposeViewController()
        mc.mailComposeDelegate = self
        mc.setSubject(emailTitle)
        mc.setMessageBody(messageBody, isHTML: false)
        mc.setToRecipients(toRecipents)
        self.presentViewController(mc, animated: true, completion: nil)
    }

关于email - 向消息正文添加额外的字符串(swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282442/

相关文章:

iphone - UITextField 光标向后移动

xcode - 如果 UITextField 想要第三方键盘中的数字/小数/默认键盘,请捕获?

java - 如何从jsp页面使用GMail SMTP服务器发送电子邮件?

swift - 检测枚举节点的重叠

swift - XCTestExpectation 似乎在 Task() 中不起作用

ios - 在 Swift 中修改数组,(通过下标语法插入和追加)

iphone - iOS 中带有建议列表的 Textview

email - A/B 测试电子邮件 - 添加另一个 utm- 变量

c# - 在 Unity WebGL 构建中获取 "system.net.sockets.socketexception no such host is known"

php - 邮件中的最大行长度