Apple MailがPDFファイルを単純な添付ファイルとして扱ってくれず、Apple Mailからだとメール送信で正しくFax送信できなかったので
Automatorプリントプラグインをつくって各アプリの印刷画面から簡単にFax送信できるようにした。
この記事はRaspberry Pi (Raspbian)でPDFファイルをメールからFax送信するの続きです。
目次
環境
- Raspberry Pi(Raspbian)にHylafaxが導入されていて、かつメールでFaxの送信ができること。[構築方法(前記事)]
前記事までに書かれている中身はすべて行われているものとしてこの記事は書かれています。
設定方法
PostfixからGmail経由でメール送信できるようにする
Gmailのアカウント情報を登録する。
cd /private/etc/postfix/
sudo vim gmail_passwd
smtp.gmail.com:587 [ユーザー名]@gmail.com:[パスワード]
sudo postmap gmail_passwd
sudo rm gmail_passwd
Postfixの設定ファイルを編集する。
sudo vim /private/etc/postfix/main.cf
末尾に以下を追加する。
# Posifix Configuratoins
relayhost = smtp.gmail.com:587
# SASL Authentication
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# TLS Settings
smtp_use_tls = yes
smtp_tls_security_level = encrypt
tls_random_source = dev:/dev/urandom
Postfixを起動する。
sudo postfix start
ちなみに、Postfixのログはターミナルで下のコマンドを入力するとコマンドライン上に流れる。
log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
Automator プリントプラグインを作成
- Automatorを起動する
- 新規ファイルを作成画面で「プリントプラグイン」を選択して進む
-
ワークフロー画面に、「変数の値を設定」を追加し、変数名「PDF」を設定。
- その下に、「テキストの入力を求める」を追加し、質問に「送り先電話番号を指定してください」などと入力し、「回答を必須にする」とオプションの中にある「このアクションの入力を無視」にチェックを入れる。
- さらにその下に、「変数の値を取得」を追加し、変数名「PDF」を選ぶ。
- 最後に一番下に、「シェルスクリプトを実行」を追加し、入力の引き渡し方法を「引数として」を選んだら、以下のコードを必要に応じて変更し下のフォームに入力する。
SENDMAIL=/usr/sbin/sendmail
ECHO=/bin/echo
CAT=/bin/cat
BASENAME=/usr/bin/basename
PRINTF=/usr/bin/printf
ATTACH_PATH=$2
ATTACH_FILE=`$BASENAME "${ATTACH_PATH}"`
# mail head settings.
MAIL_BODY=/tmp/mail_body.txt
MAIL_FROM=[送信元メールアドレス]
MAIL_TO=[Faxサーバーのメールアドレス]
MAIL_SUBJECT=$1
MAIL_BOUNDARY=`date +%Y%m%d%H%M%N``openssl rand -base64 12 | fold -w 10 | head -1`
TIME_STAMP=`date +"%Y-%m-%d %H:%M:%S"`
# make body.
$ECHO "" > $MAIL_BODY
# send mail.
$SENDMAIL -t << EOF
From: ${MAIL_FROM}
To: ${MAIL_TO}
Subject: ${MAIL_SUBJECT}
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="${MAIL_BOUNDARY}"
--${MAIL_BOUNDARY}
Content-Type: text/plain; charset="iso-2022-jp"
`${CAT} ${MAIL_BODY}`
--${MAIL_BOUNDARY}
Content-Type: application/pdf; name="${ATTACH_FILE}"
Content-Disposition : attachment; filename="${ATTACH_FILE}"
Content-Transfer-Encoding: base64
`${CAT} "${ATTACH_PATH}" | base64 -b 76`
--${MAIL_BOUNDARY}--
EOF
- あとは名前をつけて保存するといろいろなアプリで印刷画面の左下にあるPDFボタンの横の矢印からFaxを送信できるようになる。