2016-06-16 3 views
5

Ich habe Probleme beim Senden von E-Mails von meinem Osx-Swift-Anwendung. Um E-Mails senden i verwendet den Code untensenden Sie E-Mail von Swift OSX-Anwendung

import Foundation 
import Cocoa 


class sendemail : NSObject, NSSharingServiceDelegate{ 

func sendEmail() throws 
{ 
    print("enter email sending") 
    let body = "This is an email for auto testing throug code." 
    let shareItems = [body] as NSArray 

    let service = NSSharingService(named: NSSharingServiceNameComposeEmail) 

    service?.delegate = self 
    service?.recipients = ["[email protected]"] 

    let subject = "Vea Software" 
    service?.subject = subject 

    service?.performWithItems(shareItems as [AnyObject]) 
} 

} 

Ich habe die Quelle bilden diesen Link gefunden: https://www.veasoftware.com/posts/send-email-in-swift-xcode-62-os-x-1010-tutorial

Aber es funktioniert nicht.

Ich habe auch versucht, diese Anweisungen folgende Mail von Endgerät zu senden:

http://www.developerfiles.com/how-to-send-emails-from-localhost-mac-os-x-el-capitan/

heißt es:

postfix/postfix-script: fatal: the Postfix mail system is not running 

mir bitte helfen.

Ich kann Mail von meiner Mac Mail App manuell senden, die konfiguriert ist.

I

xcode 7.3, osx el captain and swift 2.2 

Antwort

9

Das bin mit funktioniert für mich:

class SendEmail: NSObject { 
    static func send() { 
     let service = NSSharingService(named: NSSharingServiceNameComposeEmail)! 
     service.recipients = ["[email protected]"] 
     service.subject = "Vea software" 

     service.performWithItems(["This is an email for auto testing through code."]) 
    } 
} 

Verbrauch:

SendEmail.send() 
+0

vielen Dank für Ihre Hilfe. Aber es funktioniert hier nicht ... :(.... ist das nötig, um irgendetwas wie Postmail einzurichten, um dies erfolgreich auszuführen? –

+0

Funktioniert für mich ohne extra Setup erforderlich. Danke – dawid

2

Swift 4:

class SendEmail: NSObject { 
static func send() { 
    let service = NSSharingService(named: NSSharingService.Name.composeEmail)! 
    service.recipients = ["[email protected]"] 
    service.subject = "Email Subject" 

    service.perform(withItems: ["Email Content"]) 
    } 
} 

Verwendung: SendEmail.send()