クローズドメールリレー用 SMTP サーバーの構成
クローズドメールリレー用 SMTP サーバーの構成
SMTP サーバーをクローズドメールリレー用に設定するには、is.properties ファイルで以下のプロパティを構成する必要があります。すべてのプロパティが正しく構成されているかどうか、空白になっているプロパティがないかどうかを確認してください。
|
|
メールリレーシステムを切り替える場合は、以下の点を考慮する必要があります。
• メールリレーを切り替える場合は、サーバーを再起動する必要があります。
• クローズドメールリレーシステムの使用中に、以下に示すいずれかのプロパティを変更した場合は、サーバーを再起動する必要があります。
|
• mksis.smtp.authentication - クローズドメールリレーを使用して電子メールを送信する場合は、このプロパティの値を true に設定します。このプロパティの値を false に設定すると、アプリケーション内でオープンメールリレーを使用して電子メールが送信されます。
• mksis.smtp.ssl.enabled - SMTP サーバーで TLS 暗号化機能を有効にするには、このプロパティの値を true に設定します。署名者証明書を使用する TLS 暗号化機能に対応するように SMTP サーバーが構成されている場合にのみ、SMTP サーバーで TLS 暗号化機能を使用することができます。SMTP サーバーが TLS 暗号化機能に対応するように構成されている場合は、keytool.exe コマンドを使用して、署名者証明書 (カスタムルート CA またはカスタム中間 CA) を SMTP サーバーから信頼済みキーストアにインポートすることができます。keytool.exe コマンドは、JRE/JDK フォルダに保管されています。
%jdk%\bin\keytool -importcert -alias <<SMTP Server name>> -storetype PKCS12
-keystore jdk\lib\security\cacerts
-file <custome_CA_certificate>
where
-importcert - specifies to import the certificate response
-alias - specifies the name of the entry from which to import
-file - specifies the path from which to read the CA response
You must repeat the command for all the CAs.
• mksis.logging.email.from - このプロパティには、送信者の認証ユーザー名が格納されます。
• mksis.logging.emailfrom.password - このプロパティには、パスワードが格納されます。
• mksis.logging.email.server.hostname - このプロパティには、SMTP サーバーの名前が格納されます。
• mksis.logging.email.server.port - このプロパティには、ポート番号が格納されます。
|
|
認証ユーザー名とパスワードの追加または修正を行った後、is.properties ファイルを保存して暗号化ツールを実行します。これにより、is.properties ファイルで指定したパスワードが暗号化されます。
|
電子メールトリガー
オープンメールリレーを継続して使用する場合は、特に変更を行う必要はありません。電子メールトリガーが正常に機能します。SMTP のクローズドメールリレーシステムに移行する場合は、前述のように is.properties ファイルを設定し、アプリケーションに付属している既成のトリガースクリプトを以下のように変更する必要があります。
• Java Mail API とサンプルのトリガースクリプト (emailAdvanced_closedmail.js) を使用している場合は、適切な暗号化技術を使用して、getSMTPUserName() 関数と getSMTPPassword() 関数から認証情報の詳細を取得する必要があります。以下のコードスニペットを使用することができます。
// NOTE: SMTP closed mail configuration requires username and password to send
// e-mails. As storing plain-text password is not recommended, using an appropriate encryption
// technique is recommended in retrieving authentication details from getSMTPUserName(),
// getSMTPPassword() functions.
function getSMTPUserName()
{
var smtpUsername = null;
return smtpUsername;
}
function getSMTPPassword()
{
var smtpPassword = null;
return smtpPassword;
}
//enable authentication
jmail_props.put( "mail.smtp.auth", true);
//enable TLS
jmail_props.put( "mail.smtp.starttls.enable", "true");
Packages.javax.mail.Transport.send(html_msg, getSMTPUserName(), getSMTPPassword());
• Java Mail API 以外 (
sendmail() 関数) を使用している場合は、SMTP 基本認証で指定されたユーザー名に一致する正しいユーザー名を使用する必要があります。たとえば、この関数を
eb.sendmail([email protected], email, subject, message) という形式で使用することができます。