【问题标题】:JXA: Create a mailbox in Apple MailJXA:在 Apple Mail 中创建邮箱
【发布时间】:2017-08-13 06:38:53
【问题描述】:

我正在尝试使用 JavaScript 在 Apple Mail 中创建子邮箱。

我有以下代码sn-p(parent是对我想要新邮箱的邮箱的引用):

var mb = mail.Mailbox({name: "SubFolder"});
parent.mailboxes.push(mb);

事件日志显示:

app = Application("Mail")
 app.mailboxes.byName("Local").mailboxes.byName("Archive").mailboxes.push(app.Mailbox({"name":"SubFolder"}))

    --> Error -10000: AppleEvent handler failed.

我做错了什么?

谢谢, 克雷格。

现在编码:

var mb = mail.Mailbox({name: "Local/Archive/Test Archive/SubFolder"})
logger.logDebug("mb = '" + Automation.getDisplayString(mb) + "'.");
mail.mailboxes.push(mb)                     // create the subfolder

只要路径中没有空格,它就可以工作。 我试图在它前面使用 \\ 强制空格,但随后你得到“Test\ Archive”作为名称。

那么如何让名称中的空格起作用?

谢谢。

【问题讨论】:

    标签: applescript javascript-automation


    【解决方案1】:

    要创建子文件夹,您需要一个类似于 posix 路径的名称 --> "/theMasterMailbox/subMailBox1/subMailBox2/subMailBox3"


    所以,你需要:

    • 将每个父文件夹的名称放入数组的循环。
    • 使用join('/') 将数组的元素连接成一个字符串。
    • 使用mail.mailboxes.push(mb) 而不是parent.mailboxes.push(mb)

    这是一个示例脚本,它在所选文件夹(邮箱)中创建一个名为“SubFolder”的邮箱:

    mail = Application('com.apple.Mail')
    parent = mail.messageViewers()[0].selectedMailboxes()[0]
    
    mboxNames = [parent.name()]
    thisFolder = parent
    try {
        while (true) { // loop while exists the parent folder 
            mboxNames.unshift(thisFolder.container().name()) // add the name of the parent folder to the beginning of an array
            thisFolder = thisFolder.container() // get the parent of thisFolder
        }
    } catch (e) {} // do nothing on error, because thisFolder is the top folder
    
    mboxNames.push("SubFolder") // append the name of the new subFolder to the array
    
    mBoxPath = mboxNames.join('/') // get a string (the names separated by "/")
    mb = mail.Mailbox({name:mBoxPath})
    mail.mailboxes.push(mb) // create the subfolder
    

    【讨论】:

    • 谢谢。我刚刚看到这个,因为当你发布时我没有收到通知。我将在沙盒中尝试这个,看看我是否可以让它在本地盒子上工作。
    • 见上面我的帖子的扩展。如果其中一个邮箱名称中有空格,我将无法正常工作。
    • 您的代码在我的电脑上运行良好(macOS Sierra版本 10.12.6)。对不起,我帮不了你。
    • 我也在 10.12.6。我放弃并删除了邮箱名称中的空格。存档脚本现在正在运行。
    猜你喜欢
    • 2019-03-10
    • 2020-07-20
    • 2011-07-03
    • 2018-06-21
    • 2012-03-29
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多