как бы вы отправили письмо с быстрым в приложении. Например, например, ваш пользователь хочет сбросить свой пароль в приложении для социальных сетей с помощью Parse (или нет), но вы не хотите использовать MessageUI, потому что хотите, чтобы он был автоматическим. Я провел некоторое исследование и выяснил, что это возможно с помощью mailgun, но я не могу понять, как его использовать с быстрым и XCode 6. Не могли бы вы помочь мне?Отправка электронной почты с помощью Swift
ответ
Уверенный, вы можете.
import Foundation
import UIKit
import MessageUI
class ViewController: ViewController,MFMailComposeViewControllerDelegate {
@IBAction func sendEmailButtonTapped(sender: AnyObject) {
let mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
self.showSendMailErrorAlert()
}
}
func configuredMailComposeViewController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self // Extremely important to set the --mailComposeDelegate-- property, NOT the --delegate-- property
mailComposerVC.setToRecipients(["[email protected]"])
mailComposerVC.setSubject("Sending you an in-app e-mail...")
mailComposerVC.setMessageBody("Sending e-mail in-app is not so bad!", isHTML: false)
return mailComposerVC
}
func showSendMailErrorAlert() {
let sendMailErrorAlert = UIAlertView(title: "Could Not Send Email", message: "Your device could not send e-mail. Please check e-mail configuration and try again.", delegate: self, cancelButtonTitle: "OK")
sendMailErrorAlert.show()
}
// MARK: MFMailComposeViewControllerDelegate
func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
controller.dismissViewControllerAnimated(true, completion: nil)
}
}
Источник Andrew Bancroft
из вопроса: «но вы не хотите использовать MessageUI, потому что хотите, чтобы он был автоматическим» –
при использовании В симуляторе IOS9.2 сбой представления с сообщением «viewServiceDidTerminateWithError». Однако в других вопросах указано, что это проблема только с симулятором, и решение будет работать на реальных устройствах. – Dashrath
Выглядит _very_ знакомый https://www.andrewcbancroft.com/2014/08/25/send-email-in-app-using-mfmailcomposeviewcontroller- with-swift/ – n13
Анализировать поддерживает Mailgun и Mandrill из коробки. См. Их documentation
Вам нужно будет написать функцию CloudCode, а затем вызвать ее из приложения.
PFCloud.callFunctionInBackground("hello", withParameters:[:]) {
(result: AnyObject!, error: NSError!) -> Void in
if error == nil {
// result is "Hello world!"
}
}
Примеры фрагментов кода для отправки почты с использованием Mailgun.
var Mailgun = require('mailgun');
Mailgun.initialize('myDomainName', 'myAPIKey');
Mailgun.sendEmail({
to: "[email protected]",
from: "[email protected]",
subject: "Hello from Cloud Code!",
text: "Using Parse and Mailgun is great!"
}, {
success: function(httpResponse) {
console.log(httpResponse);
response.success("Email sent!");
},
error: function(httpResponse) {
console.error(httpResponse);
response.error("Uh oh, something went wrong");
}
});
Есть ли модуль, который мне нужно импортировать? он дает мне ошибки –
var Mailgun = require ('mailgun'); – picciano
У меня есть тот же код, и я все еще получаю ошибки также в swift вы должны использовать «» для строки вместо « –
Что вы пробовали? – Loko