SMTPコネクションのサーバー設定
このFP命令は、指定されたパラメータに従って、CPUユニット内で指定されたSMTPクライアントへのコネクションサーバー設定を定義します。
入力
名前とアドレス、ポート番号、認証方式を含むアカウントデータを設定します。
送信元名称(オプションパラメータ)
キーワード: NAME
送信元メールアドレス(必須のキーワード)
キーワード: FROM
文法:'FROM='
IPアドレスまたはホスト名(必須のキーワード)
IPアドレス
IPアドレスの場合は、最初にキーワードIPv4
またはIPv6
を指定します。
IPv4の文法: 例'IPv4=111.122.133.144'
IPv6の文法: 例'IPv6=1111:122:2:1555:0:0:1888'
IPv4アドレスの場合、範囲の制限があることに注意してください。 無効なIPアドレスが命令に指定されたとき、演算エラーは発生せず、出力bErrorがTRUEにセットされます。
ホストネーム
キーワード: HOST
文法: 'HOST=SMTP.pidsx.com'
ポート番号 (オプションパラメータ)
キーワード: 'PORT'
文法:'PORT=xxxxx'
(初期値:25)
範囲:1~65535
SSL3/TSL1認証(オプションパラメータ). SSL3/TSL1認証を使用するか否かを指定します。
キーワード:
SSL
: SSL3/TLS1を使用する
NON
: SSL3/TLS1を使用しない(デフォルト)
変換例:
送信元名称としてFP7_001を、送信元メールアドレスとして「pana@pana.com」を、IPアドレスとして102.244.2.110を設定し、SSL3/TLS1認証のポート25を使用する場合:'NAME=FP7_001,FROM=pana@pana.com,IPv4=192.255.2.10,PORT=25,SSL'
送信元名称をそのままで、送信元メールアドレスとして「sunx@sunx.com」を、IPアドレスとして1222::a8dd:0:0:6666を設定し、SSL3/TLS1認証のポート100を使用する場合:',FROM=sunx@sunx.com,IPv6=1111:1222::a8dd:0:0:6666,PORT=100,SSL'
送信元名称としてFP7_002を、送信元メールアドレスとして「pewsunx@pewsunx.com」を、ホスト名としてSMTPmailserver.comを設定し、認証なしでポート1000を使用する場合:'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com,PORT=1000,NON'
送信元名称としてFP7_002を、送信元メールアドレスとして「pewsunx@pewsunx.com」を、ホスト名としてSMTPmailserver.comを設定し、ポート番号の設定と認証は変更しない場合:'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com'
ログインデータの設定
SMTP認証方法(必須のキーワード)
キーワード:
CRAM:CRAM-MD5が使用されます
PLAIN1: PLAIN1 (ID/PASS)が使用されます
PLAIN2: PLAIN2 (ID/PASS)が使用されます
LOGIN: LOGINが使用されます
アカウント(最大32文字)
キーワード: ACCOUNT
文法:'ACCOUNT=xxx'
(デフォルト: root)。'ACCOUNT='
を使用して、アカウントを削除します。
パスワード(最大32文字: 大文字と小文字が使用できます)
キーワード: PASS
文法:'PASS=xxx'
(デフォルト: root)。'PASS='
を使用して、パスワードを削除します。
NOUSE
:SMTP認証方式の設定は無視されます。
KEEP
: 現在のログイン設定を保持します。変換例:
アカウント「sunx」のSMTP認証方式としてCRAM-MD5を、パスワード「control」で設定する場合:'CRAM,ACCOUNT=sunx,PASS=control'
アカウント「root」のSMTP認証方式としてCRAM-MD5を設定し、パスワードを削除する場合:'CRAM,ACCOUNT=root,PASS='
SMTP認証方式としてPLAIN1を設定し、アカウント名を削除してパスワード「SUNX」を使用する場合:'PLAIN1,ACCOUNT=,PASS=SUNX'
SMTP認証方式としてPLAIN2を設定し、アカウント名とパスワードを削除する場合:'PLAIN2,ACCOUNT=,PASS='
アカウント「panasonic」のSMTP認証方式としてLOGINを設定し、設定済みのパスワードを保持する場合:'PLAIN2,ACCOUNT=panasonic'
すでに指定されているアカウント名のSMTP認証方式としてCRAM-MD5を設定し、パスワード「SUNX」を設定する場合:'CRAM,,PASS=SUNX'
SMTP認証方式を使用せず、アカウントを使用せず、パスワードを変更しない場合:'NOUSE'
SMTP認証方式、アカウント、およびパスワードを保持する場合:'KEEP'
必要に応じて、オプションの通信パラメータを設定します。初期値のメールの言語は日本語に設定されていることに注意してください。
最大メールサイズ
キーワード: MAILSIZE
文法:'MAILSIZE=xxx'
(初期値:100)
範囲:1~10240KB
接続タイムアウト
キーワード: TOUT
文法: 'TOUT=xxx'
(初期値:60秒)
範囲: 30~300秒
リトライ回数
キーワード: RTRY
文法: 'RTRY=x'
(デフォルト: 3回)
範囲:0~3
リトライ間隔
キーワード: RTTM
文法: 'RTTM=xxxxx'
(初期値:600秒)
範囲:10~86400秒
値は10秒単位で指定することができます。10以下の値は切り捨てられます。
例: 38秒を指定した場合は30秒になります。
メールの件名と本文に使用する言語。
キーワード:
JPN:日本語(デフォルト)
ENG: 英語
INITIAL
:INITIAL
:接続タイムアウト、再試行回数、リトライ間隔を初期値設定にリセットします。
KEEP
:現在の通信設定を保持します。
変換例:
最大メールサイズの設定:1000KB、接続タイムアウト:30秒、再試行回数:2、リトライ間隔: 500秒、メール言語:日本語:'MAILSIZE=1000,TOUT=30,RTRY=2,RTTM=500,JPN'
最大メールサイズの設定:10000KB、接続タイムアウト:270秒、リトライなし、リトライ間隔:4900秒、メール言語:英語:'MAILSIZE=10000,TOUT=270,RTRY=0,RTTM=4900,ENG'
最大メールサイズの設定:500KB、接続タイムアウト:30秒、再試行回数:3、リトライ間隔: 200秒、メール言語:変更しない:'MAILSIZE=500,TOUT=30,RTRY=3,RTTM=200'
最大メールサイズの設定:5000KB、接続タイムアウト:変更しない、再試行回数:5、リトライ間隔:3000秒、メール言語:英語:'MAILSIZE=5000,,RTRY=5,RTTM=3000,ENG'
初期値設定にリセット(最大メールサイズ:100KB、接続タイムアウト:60秒、再試行回数:3、リトライ間隔: 600秒、初期値のメール言語:日本語):'INITIAL'
現在の設定をすべて保持:'KEEP'
出力
以下の条件でTRUEになります。
接続のタイムアウトが経過した場合
IPアドレスが無効な場合
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
すべてのキーワードは、カンマで区切って登録します。例. 'NAME=abcd,FROM=sender@server.com'
文字列データは、256文字以内にする必要があります。
この命令は、割り込みプログラム中で使用することはできません。
指定するキーワードは、大文字、小文字とも使用することができます。 ただし、件名、メール本文、添付ファイルのファイル名では大文字と小文字が区別されます。
命令を実行する前にsys_bIsEthernetInitializingがFALSEであることを確認してください。命令が実行されるとsys_bIsEthernetInitializingはTRUEになります。sys_bIsEthernetInitializingがTRUEのときに命令を実行すると、エラーが発生します。
命令は、指定した転送設定用の転送要求フラグまたは指定したnLogID番号の転送要求フラグがFALSEの場合にのみ実行することができます。転送要求フラグがTRUEの場合、演算エラーが発生します。
この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
パラメータに指定された値が許容範囲外の場合。
同じキーワードを2回以上指定した場合。
指定した転送設定用のメール転送要求フラグが「TRUE:転送要求済み」の場合。
指定したnLogID番号の転送要求フラグがTRUEの場合。例:sys_blsLog0DataRecordingActiveがTRUEの場合。
命令が割り込みプログラム内で実行された場合。
文字列データが256文字を超えた場合。
パラメータに指定された値が許容範囲外の場合。
同じキーワードを2回以上指定した場合。
指定した転送設定用のメール転送要求フラグが「TRUE:転送要求済み」の場合。
指定したnLogID番号の転送要求フラグがTRUEの場合。例:sys_blsLog0DataRecordingActiveがTRUEの場合。
命令が割り込みプログラム内で実行された場合。
文字列データが256文字を超えた場合。
命令が不正なIPアドレスで実行された場合、sys_iEthernetConnectionErrorCodeが「1:不正なIPアドレスの指定」に設定されます
Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
bError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
END_VAR
bSetConnectionがFALSEからTRUEに変わり、sys_bIsEthernetInitializingがFALSEであると、命令が実行されます。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 12 ;
NETWORK_BODY
B(B_VARIN,,'NAME=FP7_001~FROM=pewsunx@pewsunx.com~HOST=smtpmailserver.com~PORT=1000~NON',37,6,39,8,);
B(B_VARIN,,'CRAM~ ACCOUNT=sunx~PASS=control',37,7,39,9,);
B(B_VARIN,,'MAILSIZE=1000~TOUT=30~RTRY=2~RTTM=500~ENG',37,8,39,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bError,53,6,55,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_F,FP_SMTP_SET_CONNECTION!,,39,4,53,10,,?DEN?DsAccount?DsLogin?DsCommunication?AENO?CbError);
L(6,2,13,2);
L(1,2,4,2);
L(15,2,15,6);
L(15,6,39,6);
L(1,0,1,12);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bSetConnection) And not sys_bIsEthernetInitializing then
FP_SMTP_SET_CONNECTION(sAccount := 'NAME=FP7_001,FROM=pewsunx@pewsunx.com,HOST=smtpmailserver.com,PORT=1000,NON',
sLogin := 'CRAM, ACCOUNT=sunx,PASS=control',
sCommunication := 'MAILSIZE=1000,TOUT=30,RTRY=2,RTTM=500,ENG',
bError => bError);
END_IF;