#author("2020-07-07T11:05:36+00:00","default:haikikyou","haikikyou")
[[OpenXPKI]]
#contents


証明書リクエストや承認、リジェクト時などにメール送信を行うことができる。

* メール送信設定 [#g907e1bd]

#geshi{{{
# cd /etc/openxpki/config.d/realm/democa/notification
# mv smtp.yaml.sample smtp.yaml
}}}

メールの設定箇所は以下のとおりであり、backendがメール送信の基本情報で、ここを修正すれば良い。~
gmail経由で送信する場合は、例えば以下のようになる。

&label(warn){参考}; ''gmailの設定例''

&code(){<xxxx>};は、置き換え必要。

#geshi{{{
# Sample config for good old email notifications
backend:
    class: OpenXPKI::Server::Notification::SMTP
    host: smtp.gmail.com
    port: 587
    starttls: 1
    username: <account>@gmail.com
    password: <password>
    debug: 0
    # You need to install MIME::Tools for html support
    use_html: 0
...
}}}

use_htmlは、htmlメール(utf-8)となる。use_htmlが0の場合はplainで送信される。

&label(info){補足}; ''Less secure apps''

Less secure apps & your Google Accountに引っかかる場合は、フラグをonにする必要がある。~
つまり、アプリのアクセスを許可する。(許可するか否かは自身の環境で判断で)
* Plain形式でのマルチバイト文字の送信 [#i8181d06]

plain形式ではエンコーディングが考慮されていないため、マルチバイト文字を入れるとエラーとなる。~
以下のようにソース修正すればエラーにならない。

#geshi(diff){{{
diff --git a/Server/Notification/SMTP.pm b/Server/Notification/SMTP.pm
index 88bdad9..7cc7b35 100644
--- a/Server/Notification/SMTP.pm
+++ b/Server/Notification/SMTP.pm
@@ -104,7 +104,7 @@ use OpenXPKI::Serialization::Simple;
 
 use Net::SMTP;
 use Net::Domain;
-
+use MIME::Base64;
 use Moose;
 use Encode;
 
@@ -521,7 +521,10 @@ sub _send_plain {
     $smtpmsg .= "To: " . $vars->{to} . "\n";
     $smtpmsg .= "Cc: " . join(",", @{$vars->{cc}}) . "\n" if ($vars->{cc});
     $smtpmsg .= "Reply-To: " . $cfg->{reply} . "\n" if ($cfg->{reply});
-    $smtpmsg .= "Subject: $vars->{prefix} $subject\n";
+    $smtpmsg .= "Subject: ". Encode::encode("MIME-Header", "$vars->{prefix} $subject") ."\n";
+    $smtpmsg .= "Content-Type: text/plain; charset=utf-8\n";
+    $smtpmsg .= "Content-Transfer-Encoding: base64\n";
+    $smtpmsg .= "\n". encode_base64(Encode::encode_utf8($output));
     $smtpmsg .= "\n$output";
 
     ##! 64: "SMTP Msg --------------------\n$smtpmsg\n ----------------------------------";
}}}

メールのfromなどに宛名を入れる場合も同様にMIME-Headerでエンコードする。

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
目次
ダブルクリックで閉じるTOP | 閉じる
GO TO TOP