Функция отправки электронной почты skpsmtpmessage работает неправильно?

Поэтому я скачал модуль skpsmtpmessage и установил его в свой проект. У меня есть файл с именем MailSender в проекте, который выглядит так:

import Foundation
import skpsmtpmessage

class MailSender: NSObject, SKPSMTPMessageDelegate {
    static let shared = MailSender()

    func sendEmail() {
        let message = SKPSMTPMessage()
        message.relayHost = "smtp.gmail.com"
        message.login = "[email protected]"
        message.pass = "password"
        message.requiresAuth = true
        message.wantsSecure = true
        message.relayPorts = [587]
        message.fromEmail = "[email protected]"
        message.toEmail = "[email protected]"
        message.subject = "subject"
        let messagePart = [kSKPSMTPPartContentTypeKey: "text/plain; charset=UTF-8", kSKPSMTPPartMessageKey: "body of email"]
        message.parts = [messagePart]
        message.delegate = self
        message.send()
    }

    func messageSent(_ message: SKPSMTPMessage!) {
        print("Successfully sent email!")
    }

    func messageFailed(_ message: SKPSMTPMessage!, error: Error!) {
        print("Sending email failed!")
    }
}

В ContentView у меня есть кнопка, которая выглядит так:

Button("click me") {
    MailSender.shared.sendEmail()
}

Когда я запускаю симулятор и нажимаю кнопку в ContentView, я получаю кучу сообщений *** stop watchdog *** на выходе, а затем несколько дополнительных сообщений с надписью S: 250-smtp.gmail.com к вашим услугам, [ Мой IP-адрес], а затем появляется сообщение S: 535-5.7.8 Имя пользователя и пароль не приняты. Узнайте больше на , но я знаю, что адрес электронной почты и пароль, которые я предоставляю, верны (это моя личная информация электронной почты в моей версии проекта). Любая помощь будет принята с благодарностью.


person nickcoding    schedule 21.07.2020    source источник


Ответы (1)


По умолчанию поддержка внешних клиентов отключена в Gmail, поэтому войдите в свою учетную запись и убедитесь, что вы включили некоторые из них, IMAP предпочтительнее.

demo1

Затем убедитесь, что вы правильно настроили почтовый клиент.

demo2

person Asperi    schedule 21.07.2020
comment
Привет, Asperi, я попытался изменить message.relayHost на imap.gmail.com и relayPort на 993, а затем я попытался установить relayHost на smtp.gmail.com и relayPort на 465, но ни один из них не работает. Я не совсем понимаю, как это правильно настроить - не могли бы вы также отправить ответ с исправленным relayPort и relayHost? - person nickcoding; 21.07.2020