我正面临着从我的osx swift应用程序发送邮件的问题。为了发送邮件,我使用了下面的代码
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 = ["abc@dom.com"]
let subject = "Vea Software"
service?.subject = subject
service?.performWithItems(shareItems as [AnyObject])
}
}
我找到了这个链接的来源:https://www.veasoftware.com/posts/send-email-in-swift-xcode-62-os-x-1010-tutorial
但它不起作用。
我还尝试按照以下说明从终端发送邮件:
http://www.developerfiles.com/how-to-send-emails-from-localhost-mac-os-x-el-capitan/
它说:
postfix/postfix-script: fatal: the Postfix mail system is not running
请帮帮我。
我可以从我的mac邮件应用程序手动发送邮件,这是配置。
我正在使用
xcode 7.3, osx el captain and swift 2.2
3条答案
按热度按时间bnlyeluc1#
现代雨燕:
本地用户必须有一个Mail.app帐户。你还需要一个
NSApplication
的示例来运行它。不能在CLI应用程序中这样做。如果你在控制台中看到以下错误,这意味着你没有活动的NSApplication
示例。原始答案
这对我很有效:
用法:
56lgkhnf2#
斯威夫特4.2:
用法:
SendEmail.send()
zysjyyx43#
我们通过使用postfix实用程序而不是共享服务来解决这个问题。注意,在下面的代码生效之前,postfix必须运行并正确配置。
为什么要这么做呢?嗯,这是一个稍微更“通用”的解决方案,应该可以在macOS以外的平台上工作(或者可以很容易地修改)。而且,它不依赖于“邮件”。
请注意,这也使用了我们的Log工具,但您应该能够轻松地提取所需的代码。
应使用如下格式的字符串调用此例程: