我想发送一封带有AppleScript的电子邮件。此脚本将在少数计算机上使用,电子邮件应由电子邮件地址中包含“mynetwork.com”的特定类型的帐户发送。
有没有办法自动选择包含“my network.com”的计算机电子邮件帐户?显然,通配符*不起作用,请参阅下面的代码
+20/-31:
答案 0 :(得分:0)
Mac OS X Mail中帐户的发件人地址存储在sender addresses
的{{1}}媒体资源中。所以,从技术上讲,你想要的是account
。但是,get account whose email addresses ends with "@mynetwork.com"
属性是一个简单的列表,AppleScript没有动态搜索到这样的列表。
但是,任何个人计算机上的帐户数量都应该相当小,因此循环使用它们应该不是问题。
email addresses
您可能还会发现使用以下内容查看每个帐户的属性很有用:
property faxboxEmail : {"fax@opilbox.com"}
property theNumber : "Nine"
property theContent : "Hello, World"
set foundAddress to false
tell application "Mail"
repeat with potentialSender in accounts
tell potentialSender
repeat with potentialAddress in email addresses as list
if potentialAddress ends with "@mynetwork.com" then
set foundAddress to true
exit repeat
end if
end repeat
end tell
if foundAddress then
exit repeat
end if
end repeat
if foundAddress then
set senderName to full name of potentialSender
set senderAddress to senderName & " <" & potentialAddress & ">"
set newMessage to make new outgoing message with properties {visible:true, subject:theNumber, content:theContent, sender:senderAddress}
tell newMessage
make new to recipient with properties {address:faxboxEmail}
end tell
end if
end tell
如果您运行该操作,然后查看结果窗格,您将看到所有属性,包括tell application "Mail"
--or “account 1”, “account 3”, etc., up to the number of accounts
get properties of account 2
end tell
属性。如果您的脚本没有按预期执行操作,请不仅发布脚本,还发布您正在查看的属性的值,在本例中为email addresses
属性。您可能希望使用带有假example.com,example.org和example.net电子邮件地址的测试计算机,以免向收割者公开真实的电子邮件地址。
您也可能会发现从头开始构建脚本更容易。例如,在这种情况下,您可能希望编写一个脚本,该脚本从硬编码的发件人发送硬编码的电子邮件。只有在脚本的这个方面工作之后,您才想添加关于搜索动态发件人的皱纹。这将通过使每个任务变得更小来简化您的编程过程,并且还会使代码误入歧途的位置变得更加明显。