Вопрос по – Копирование текста .rtf в тело письма с AppleScript

1

У меня есть приложение AppleScript, которое создает электронное письмо (в Mail.app) с вложениями из опций, которые я выбираю в диалоговых окнах. Текстовые шаблоны хранятся в.rtf формат, чтобы непрограммисты могли изменять текстовые шаблоны по своему желанию.

Я могу создать письмо от.txt простой текстовый файл, но когда я импортирую.rtf в текстовый файл импортируются команды форматирования, которые я не хочу получать по почте.

Вот пример.rtf импортировать в электронную почту:

{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 {\fonttbl\f0\fswiss\fcharset0 Helvetica-Light;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural

\f0\fs24 \cf0 technology mail for english speakers\

Вот часть моего сценария:

-- Import the .rtf file and store content in the mycontent variable    
set mycontent to (read "/Users/kiara/Desktop/mailer/technology/tech-en-content.rtf")
…
…
-- create mail from values stored in variables
tell application "Mail"
    set theMessage to make new outgoing message with properties {visible:true, subject:mysubject, content:mycontent}
    tell content of theMessage
        make new attachment with properties {file name:this_file} at after last paragraph
    end tell
end tell

Можно ли импортировать форматированный текст из.rtf файлы в новое письмо без кодов форматирования (я выбираю rtf, потому что для форматирования текста в основном используется жирный шрифт и цвет)?

Ваш Ответ

2   ответа
1

Я думаю, что Mail отправляет электронную почту в виде обычного текста или HTML, а не RTF. Таким образом, вам нужно будет отправить свою электронную почту как HTML, а не RTF. Обратите внимание, что есть хитрость в отправке html-письма с помощью Mail через яблочный скрипт. По какой-то причине вы не можете установить свойство visible нового сообщения в true. Это не сработает, если вы это сделаете.

Вот как это может вам помочь. Вы можете использовать инструмент командной строки textutil, чтобы преобразовать rtf в html и затем отправить его по электронной почте. Обратите внимание, что я использую "аккуратный" в команде, чтобы убедиться, что HTML-код является чистым.

Поэтому все, что вам нужно сделать, это вставить адрес электронной почты получателя и тему в этот скрипт и запустить его ...

set emailAddress to "[email protected]"
set theSubject to "My converted rtf to html"

set rtfFile to choose file with prompt "Choose the RTF file to email as HTML:" without invisibles
set theHTML to do shell script "/usr/bin/textutil " & " -stdout -format rtf -convert html " & quoted form of POSIX path of rtfFile & " | /usr/bin/tidy -b -utf8"

tell application "Mail"
    set newMessage to make new outgoing message at end of outgoing messages with properties {visible:false}
    tell newMessage
        make new to recipient at end of to recipients with properties {address:emailAddress}
        set subject to theSubject
        set html content to theHTML
        send
    end tell
end tell
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded elhombre
Error: User Rate Limit Exceededvisible:falseError: User Rate Limit Exceededvisible:trueError: User Rate Limit Exceededtiny -bareError: User Rate Limit Exceededdo shell scriptError: User Rate Limit Exceededtiny -rawError: User Rate Limit Exceededtiny -utf8Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded elhombre
1

Вот еще один подход:

set the clipboard to (read "/Users/kiara/Desktop/mailer/technology/tech-en-content.rtf" as «class RTF »)

tell application "Mail"
    activate
    set theMessage to make new outgoing message with properties {visible:true, subject:"mysubject"}
end tell

tell application "System Events"
    tell process "Mail"
        repeat until focused of UI element 1 of scroll area 4 of window 1
            keystroke tab
        end repeat
        keystroke "v" using command down
    end tell
end tell
Error: User Rate Limit Exceeded

Похожие вопросы