使用通配符为电子邮件选择一种发件人

时间:2015-10-07 20:28:20

标签: applescript

我想发送一封带有AppleScript的电子邮件。此脚本将在少数计算机上使用,电子邮件应由电子邮件地址中包含“mynetwork.com”的特定类型的帐户发送。

有没有办法自动选择包含“my network.com”的计算机电子邮件帐户?显然,通配符*不起作用,请参阅下面的代码

+20/-31:

1 个答案:

答案 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电子邮件地址的测试计算机,以免向收割者公开真实的电子邮件地址。

您也可能会发现从头开始构建脚本更容易。例如,在这种情况下,您可能希望编写一个脚本,该脚本从硬编码的发件人发送硬编码的电子邮件。只有在脚本的这个方面工作之后,您才想添加关于搜索动态发件人的皱纹。这将通过使每个任务变得更小来简化您的编程过程,并且还会使代码误入歧途的位置变得更加明显。