2

ダイアログで選択したオプションから添付ファイルを含む電子メールを (Mail.app で) 作成する AppleScript アプリケーションがあります。テキスト テンプレートはフォーマットで保存される.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 英語話者向けテクノロジー メール\

これが私のスクリプトの一部です:

-- 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書式設定コードなしでファイルから書式設定されたテキストを新しいメールにインポートすることは可能ですか?

4

3 に答える 3

2

別のアプローチを次に示します。

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
于 2012-05-18T23:58:58.817 に答える
1

Mail はメールを rtf ではなくプレーンテキストまたは html として送信すると思います。そのため、メールを rtf ではなく html として送信する必要があります。Applescript 経由で Mail を使用して html メールを送信する方法があることに注意してください。何らかの理由で、新しいメッセージの visible プロパティを true に設定できません。するとうまくいきません。

これがどのように役立つかを次に示します。コマンド ライン ツール textutil を使用して、rtf を html に変換し、電子メールとして送信できます。コマンドで「tidy」を使用して、html コードがクリーンであることを確認していることに注意してください。

したがって、このスクリプトに受信者の電子メール アドレスと件名を入力して実行するだけです...

set emailAddress to "someone@somewhere.com"
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
于 2012-05-18T22:33:19.607 に答える