mailComposeController не отправил письмо в Swift - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь отправить отзыв по моей заявке. Я использую MFMailComposeViewController.

В моем коде все выглядит гладко. Возможно, дело не в моем коде, потому что после нажатия кнопки отправки, внутри MFMailComposeController дела с функцией didFinishWith .sent работает без проблем.

Важный момент: я пытался проверить свою учетную запись почты в iPhone тамможет быть проблема, с которой я никогда не сталкивался, поэтому я спрашиваю вас, ребята. Что конкретно я должен делать с моим телефоном или какое место я должен проверить, пожалуйста, опишите меня подробно к этому шаг за шагом.

func postEmail(imageView: UIImageView,text: String) {

    if MFMailComposeViewController.canSendMail() {

        let mail = MFMailComposeViewController()
        mail.mailComposeDelegate = self
        mail.setToRecipients(["feedback@gmail.com"])
        mail.setSubject("HyperVPN Hakkında Geri Bildirim")
        mail.setMessageBody(text, isHTML: false)

        let imageData: NSData = UIImagePNGRepresentation((imageView.image!)) as! NSData
        mail.addAttachmentData(imageData as Data, mimeType: "image/png", fileName: "imageName.png")
         self.present(mail, animated: true, completion: nil)
    }
}

Я ожидаю возвращения, чтобы увидеть почту в моем почтовом ящике. Но это не могло показаться. Ничего не произошло, только печатная почта была отправлена. Но на самом деле нет.

1 Ответ

0 голосов
/ 30 октября 2019

Сначала импортируйте библиотеку:

import MessageUI

установите делегат как:

MFMailComposeViewControllerDelegate

Напишите симпатичный код:

 @IBAction func buttonHandlerSendEmail(_ sender: Any) {

  let mailComposeViewController = configureMailComposer()

    if MFMailComposeViewController.canSendMail(){

        self.present(mailComposeViewController, animated: true, completion: nil)

    }else{

        print("Can't send email")

    }
}

func configureMailComposer() -> MFMailComposeViewController{

    let mailComposeVC = MFMailComposeViewController()
    mailComposeVC.mailComposeDelegate = self
    mailComposeVC.setToRecipients([self.textFieldTo.text!])
    mailComposeVC.setSubject(self.textFieldSubject.text!)
    mailComposeVC.setMessageBody(self.textViewBody.text! , isHTML: false)
    return mailComposeVC

}

Также напишите метод делегата как:

//MARK: - MFMail compose method

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

    controller.dismiss(animated: true, completion: nil)

}
...