私が達成したいもの:Remarkable 2タブレットにPDF文書を電子メールで送信しようとしています。
私はこれを行う方法を試しています:
設定
rmfakecloud
:サーバー上で実行され、公式のRemarkableクラウドシステムをエミュレートしてデータを制御できるソフトウェア私はコマンドラインで公式のRemarkable 2クラウドと対話できるソフトウェアを設定しました
rmapi
。rmfakecloud
Gmailでメールアカウントを設定しました[Eメール保護]安全性の低いアプリケーションログインを有効にする(例:2番目の認証要素なしでログインを許可する)
私は短いbashスクリプトを書いています(ChatGPTの助けを借りて認めなければなりません):
- そのアカウントのすべての電子メールをダウンロードしてください。
- 送信者が自分のメールアカウントと一致していることを確認してください([Eメール保護])
- メールからファイルを抽出する(PDFの場合)<--- [これは動作しません]
- 次のコマンドを使用して、抽出したファイルをマイタブレットのクラウドにアップロードします。
rmapi
私の技術的アプローチ:
#!/bin/bash
# The parameters for offlineimap are saved in /root/.offlineimaprc
# Define the senders whose attachments you want to save
SENDERS=("[email protected]" "[email protected]")
# Define the directory where attachments will be saved
SAVE_DIR="/root/sync/sync"
# Define the command to upload PDFs to reMarkable
RMAPI_CMD="RMAPI_CONFIG=/root/.config/rmapi/rmapi.conf RMAPI_HOST=https://tablet.mydomain.com /root/go/bin/rmapi -ni put"
# Sync emails using offlineimap
offlineimap -o
# Extract PDF attachments and upload to reMarkable
for email in /root/Maildir/\[Gmail\].All\ Mail/new/*; do
sender=$(grep -E '^From:' "$email" | sed -e 's/^From: //')
if [[ ${SENDERS[*]} =~ $sender ]]; then
munpack -q -t "$email" -C "$SAVE_DIR" \
| grep -E '^Attachment' \
| sed -e 's/^Attachment //' \
| while read -r filename; do
if [[ -f "$SAVE_DIR/$filename" ]]; then
$RMAPI_CMD "$SAVE_DIR/$filename"
if [[ -f "$SAVE_DIR/$filename" ]]; then
rm "$SAVE_DIR/$filename"
fi
fi
done
fi
done
何が間違っていますか:
root@tabletserver:~$ ./mail.sh
OfflineIMAP 7.3.0
Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v3.05, Python v3.9.2, OpenSSL 1.1.1n 15 Mar 2022
Account sync Gmail:
*** Processing account Gmail
Establishing connection to imap.gmail.com:993 (Remote)
Folder [Gmail]/All Mail [acc: Gmail]:
Syncing [Gmail]/All Mail: Gmail -> Maildir
Folder [Gmail]/Drafts [acc: Gmail]:
Syncing [Gmail]/Drafts: Gmail -> Maildir
Folder [Gmail]/Important [acc: Gmail]:
Syncing [Gmail]/Important: Gmail -> Maildir
Folder [Gmail]/Sent Mail [acc: Gmail]:
Syncing [Gmail]/Sent Mail: Gmail -> Maildir
Folder [Gmail]/Spam [acc: Gmail]:
Syncing [Gmail]/Spam: Gmail -> Maildir
Folder [Gmail]/Starred [acc: Gmail]:
Syncing [Gmail]/Starred: Gmail -> Maildir
Folder [Gmail]/Trash [acc: Gmail]:
Syncing [Gmail]/Trash: Gmail -> Maildir
Folder INBOX [acc: Gmail]:
Syncing INBOX: Gmail -> Maildir
Account sync Gmail:
*** Finished account 'Gmail' in 0:01
私の理解に問題があります。
私が知っている限り、スクリプトはgmail imapサーバーからメールをダウンロードし、ファイルが提供されるとクラウドサーバーにファイルをアップロードするように管理します。
うまくいかない、電子メールからPDFファイルを抽出することです。私は本当に何が間違っているのか、より簡単な方法が何であるかわかりません。
スクリプトの実行方法:
このスクリプトを悪魔化してsystemd
サービスとして実行する予定です。