0

我想创建一个数字电子表格。在那个电子表格中,我想要 COL A 电子邮件 Col B 城市名称 COL C 其他城市名称等等。我将手动输入该数据。

接下来我想做的是让applescript在数字电子表格中逐行检查,并向列中的每个人发送一封电子邮件。我想在电子邮件的主题或正文中使用其他变量。

任何帮助,将不胜感激!我充其量是一个新手程序员。我知道一点python,但对applescript很陌生。

伪代码(也许?)

tell numbers to open spreadsheet
repeat for each line of spreadsheet
tell mail to create email
for address COL A
for subject "Hello (COL B) I need the following Information (COL C)
for email Body "Blah Blah Blah (Col D) blah blah."
send email 
end repeat

电子邮件功能

on email(a, b, c, d)
    set recipientName to a
    set recipientAddress to b
    set theSubject to c & " --> " & d & "Shipment"
    set theContent to a & ", if you would like assistance with your shipment moving from " & c & " to " & d & " , or any other shipment you may have, please let me know. We have drivers available in your Area of Operations ready for pick up."

    tell application "Mail"

        ##Create the message
        set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

        ##Set a recipient
        tell theMessage
            make new to recipient with properties {name:recipientName, address:recipientAddress}

        ##Send the Message
            send

        end tell
    end tell
    end email

    my email(COL A, COL B, COL C, COL D)
4

1 回答 1

0

这是我一起破解的!我是新手所以要温柔。非常感谢改进和批评!

on email(emails, names, origin, destination)
    set recipientName to names
    set recipientAddress to emails
    set theSubject to "c" & " --> " & "d" & "Shipment"
    set theContent to names & ", if you would like assistance with your shipment moving from " & "c" & " to " & "d" & " , or any other shipment you may have, please let me know. We have drivers available in your Area of Operations ready for pick up."

    tell application "Mail"

        ##Create the message
        set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

        ##Set a recipient
        tell theMessage
        make new to recipient with properties {name:recipientName, address:recipientAddress}

            ##Send the Message
            send

        end tell
    end tell
end email

on recipientNames()
    set y to 1 as string
    tell application "Numbers"
        activate
        open alias "Macintosh HD:Users:TYPKRFT:Desktop:Form.numbers"
        tell table 1 of sheet 1 of document 1
            set myNames to {}
            repeat with i from 1 to the count of rows
                set x to "B" & y
                set myNames to myNames & the value of the cell x
                set y to y as integer
                set y to y + 1
                set y to y as string
            end repeat
        end tell
    end tell

    set itemsToDelete to {"missing value", "Name", missing value, "stop"}

    set cleanNames to {}

    repeat with i from 1 to count myNames
        if {myNames's item i} is not in itemsToDelete then set cleanNames's end to myNames's item i
    end repeat
    return cleanNames
end recipientNames

on emailAddress()
    set y to 1 as string
    tell application "Numbers"
        activate
        open alias "Macintosh HD:Users:TYPKRFT:Desktop:Form.numbers"
        tell table 1 of sheet 1 of document 1
            set myEmails to {}
                repeat with i from 1 to the count of rows
                set x to "C" & y
                set myEmails to myEmails & the value of the cell x
                set y to y as integer
                set y to y + 1
                set y to y as string
            end repeat
        end tell
    end tell

    set itemsToDelete to {"missing value", "Email", missing value, "stop"}

    set cleanEmails to {}

    repeat with i from 1 to count myEmails
        if {myEmails's item i} is not in itemsToDelete then set cleanEmails's end to myEmails's item i
    end repeat
    return cleanEmails
end emailAddress

set a to emailAddress()
set b to my recipientNames()


set reps to count of a
set x to 1
repeat reps times
    set emails to item x of a
    set names to item x of b
    my email(emails, names)
    set x to x + 1
end repeat  
于 2015-05-13T02:23:40.120 回答