2016-08-18 80 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服务器来执行应用程序范围的电子邮件分发,则您将完全控制凭据。

这将允许您从预先指定的帐户发送电子邮件,无需用户交互或使用邮件应用程序或相关帐户。

相关问题