2016-08-18 77 views
1

我不想通過iPhone的郵件應用程序發送它,但僅使用代碼,甚至當用戶甚至不連接到他的手機中的郵件。 我曾嘗試MFMailComposeViewController類,但它打開郵件應用程序...如何使用swift從我的應用程序發送電子郵件?

如何發送電子郵件,而無需連接到郵箱與迅速?

+0

查看MailCore API。我無法在OS X中使用Swift,但它可能適用於iOS中的Swift。 – WMios

回答

-2

存在有效的安全原因,您爲什麼不能獨立於郵件應用程序發送電子郵件,因爲用戶應該知道他們負責發送的任何郵件。這是你無法代表用戶發佈到Facebook或Twitter的原因(他們必須按下「發送」按鈕)

答案是你不能在不使用郵箱的情況下從設備發送電子郵件。聽起來您可能會使用表單將數據發送到您需要的任何位置。

+0

但我不在乎郵件從誰發送,如果我不會從用戶郵件發送它有可能以任何方式? – MuMtaZ

-1

您可以在此使用MailCore-2來實現,例如:

首先,你需要配置SMTP會話

private lazy var smtpSession: MCOSMTPSession = self.configureSession() 

func configureSession() -> MCOSMTPSession { 
    let session = MCOSMTPSession() 
    session.hostname = "somesmtpserver.com" 
    session.username = "username" 
    session.password = "password" 
    session.port = 587 //default port 
    session.authType = .SASLNone 
    session.connectionType = .StartTLS 
//  Use it to debug, if needed: 
    session.connectionLogger = {(connectionID, type, data) in 
      if data != nil { 
       if let string = NSString(data: data, encoding: NSUTF8StringEncoding){ 
        print("Connectionlogger: \(string)") 
       } 
      } 

     } 

     return session 
    } 

一些很酷的功能來解決它​​在一個簡單的方法

func sendText(text: String, withCompletionHandler completionHandler:((error: NSError?) -> Void)?) { 

     let messageBuilder = MCOMessageBuilder() 
     messageBuilder.header.from = MCOAddress(displayName: "John Appleseed", mailbox: "[email protected]") 
     messageBuilder.header.subject = "Subject" 

     messageBuilder.header.to = [MCOAddress(displayName: "FAQ", mailbox: "[email protected]")] 
     messageBuilder.textBody = text 
     let sendOperation = self.smtpSession.sendOperationWithData(messageBuilder.data()) 

     sendOperation.start { (error) in 
      if let completionHandler = completionHandler { 
       completionHandler(error: error) 
      } 
     } 
    } 
-1

您將需要使用MailCore APIs直接與SMTP服務器交互。你可以找到詳細信息和示例代碼here

請注意,對於啓用了多因素身份驗證的Gmail帳戶,您需要設置應用程序特定的密碼。如果您正在運行自己的SMTP服務器來執行應用程序範圍的電子郵件分發,則您將完全控制憑據。

這將允許您從預先指定的帳戶發送電子郵件,無需用戶交互或使用郵件應用程序或相關帳戶。

相關問題