LoginSignup
6
8

More than 5 years have passed since last update.

MacでEvernoteの選択されたノートをKindleにメール送信 (JXA)

Last updated at Posted at 2015-09-12

Evernoteの選択中のノートをHTMLにエクスポートして、メールでKindleに送信するスクリプト

evernote_to_kindle.js
// 自分のKindleのメールアドレス (必ず変更すること)
KINDLE_MAIL_ADDRESS = "your_kindle_address@きんどる.com"

// Kindleへの送信を許可しているメールアドレス
KINDLE_PERMITTED_ADDRESS = "your_name <your_address@gmail.com>"

TEMP_DIR = "evernote_to_kindle"
ZIP_NAME = "evernote_to_kindle.zip"

app = Application.currentApplication()
app.includeStandardAdditions = true

// Evernoteの参照と、選択中のノートを取得
Evernote = Application("Evernote")
selected_notes = Evernote.selection()

// 一時フォルダを作成
se = Application("System Events")
temp_folder = Path(se.temporaryItemsFolder.posixPath() + "/" + TEMP_DIR)

// ノートをHTMLとしてエクスポートし、HTMLをZIPに固める
Evernote.export(selected_notes, {to:temp_folder, format:"HTML"})
app.doShellScript("cd " + temp_folder + ";zip " + ZIP_NAME + " *.html")

// メール作成
Mail = Application("Mail")
m = Mail.OutgoingMessage({sender: KINDLE_PERMITED_ADDRESS, subject:"変換"}).make()
m.toRecipients.push(Mail.Recipient({address: KINDLE_MAIL_ADDRESS }))

// ZIPを添付して送信
m.attachments.push(Mail.Attachment({fileName: temp_folder + "/" + ZIP_NAME}))
Mail.send(m)

// 一時フォルダを削除
se.delete(se.diskItems[temp_folder.toString()])

KINDLE_MAIL_ADDRESSのみ、書き換えが必須です。
Kindleのメールアドレスに必ず書き換えてください。

KINDLE_PERMITTED_ADDRESSはKindleへの送信を許可しているメールアドレスです。
Macの送信メールアドレスが一つしかなく、かつKindleへの送信を許可されているアドレスであればいじる必要はありません。

Macのどのメールアドレスで送信するかを設定するのですが、存在しなければ無視されます。
また、登録されてる名前・メールアドレス・括弧が一字一句同じでないと送信アドレスを変更できません。(Mailの仕様です。)
ターミナルで以下を実行すると名前とメールアドレスの一覧が表示されるので、コピペしてください。

osascript -l JavaScript -e 'Application("Mail").accounts().forEach(function(account){console.log(account.fullName() + " <" + account.emailAddresses()[0] +">")})'

複数のノートが選択されているとEvernoteがindex.htmlを作りやがりますので適当に削除してください。

参考

Send email with attachment using Javascript for Automation

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8