PowerShellのスクリプトからEvernoteへメール投稿

ネット・サービス コンピュータ
Evernoteのメール転送機能は、GmailなどからメールをEvernoteに転送すると幸せになれる機能だと聞いています。
ざっくりとした仕組みとして、Evernote側にアカウントごと個別のメールアドレスがありそちらに送信したメールがEvernoteのノートとして投稿される機能だったりします。
メールクライアントでなくてもメールを送信できる装置であれば何でもいけるわけです。以前にPowerShellでメール送信が出来ることを確認しましたので、今回はEvernoteにメールを送信してみたいと思います。

送信先のメールアドレスを確認

Web版のEvernote

  1. 画面右下のKのマークをクリック
  2. 設定をクリック
  3. 画面下部のメールの転送先が送信先のメールアドレスになります。

テキストを送信してみる。

スクリプト

<# PowerShellからEvernoteへメール投稿(テキスト) #>

$server = "smtp.mail.yahoo.co.jp"; # SMTPサーバーアドレス
$port = 587; # SMTPサーバーポート

$username = "xxxxxx" # Yahooアカウントのユーザー名
$password = "******" # Yahooアカウントのパスワード

$from = "xxxxxx@yahoo.co.jp" # 送信元メールアドレス
$to = "xxxxxx@m.evernote.com" # 送信先メールアドレス(Evernoteの転送先アドレス)
$subject = "PowerShellからEvernoteへメール投稿(テキスト)" # 件名
$body = "本文" # 本文

$file = $null # 添付ファイル


#メール送信オブジェクトを生成
$smtp = New-Object Net.Mail.SmtpClient($server, $port);

#SSL通信をしない
$smtp.EnableSsl = $false;
$smtp.Credentials  = New-Object Net.NetworkCredential($username, $password);

$str2 = $subject | % {
  $s = $_
  (1..2) | % {
    $s = [Convert]::ToBase64String($enc.GetBytes($s))
    $s = ("=?{0}?B?{1}?=" -f "iso-2022-jp", $s)
  }
  $s
}

$mail = New-Object Net.Mail.MailMessage($from,$to,$str2,$body);

# 添付ファイル
if ($file) {
    $o = New-Object Net.Mail.Attachment($file);
    $mail.Attachments.Add($o);
}

$smtp.Send($mail);

ご利用の場合はスクリプト内のメールアドレス関連項目を書き変えてください。
$username = "xxxxxx" # Yahooアカウントのユーザー名
$password = "******" # Yahooアカウントのパスワード
$from = "xxxxxx@yahoo.co.jp" # 送信元メールアドレス
$to = "xxxxxx@m.evernote.com" # 送信先メールアドレス(Evernoteの転送先アドレス)

結果

画像ファイルを添付し送信してみる。

スクリプト

テキストを送信してみる。のスクリプトの$file = $null # 添付ファイルの$nullを添付したい画像ファイルの”パス”に置き換える

結果

感想

PowerShellスクリプトで扱えるテキストや画像をEvernoteのノート化する事が出来ました。アイディア次第で色々と使える機能だと思います。あと、送信するメールをHTMLで記述するとHTMLのままノートが出来上がるようです。

まだ試行錯誤の最中ですが、上手くするとWebページのリンクをたどってWebサイトを丸ごとダウンロードし、ダウンロードしたHTMLをEvernoteに投稿するスクリプトが作れそうです。自動Webクリッパー的な代物ですが、Internet ArciveのWayback Machineの個人版的な使い方が出来るのではないかと鋭意作成中です。

Webサイトのダウンロードは結構昔から色々なスクリプト言語で作成したりしていますが、Webサーバの種類ごとの対応やHTML内の文字コード、不完全なHTMLの解析など、色々とハードルが高いです。Webブラウザはこの辺を上手いこと動くように作っていること見ると、ブラウザ作成者に頭が下がる思いです。

ウェブスクレイピングやクローラーなどと同じ技術が必要なわけですが、機械学習との親和性が高いと言われているPythonがデータ収集でウェブスクレイピングを使っていると思われるので、その類のライブラリなども豊富なのではと情報収集をしています。

Outputの選択肢の一つとしてEvernoteが選べると言うだけでスクリプトの可能性が広がります。

コメント