FP_SMTP_SET_CONNECTION

SMTPコネクションのサーバー設定

このFP命令は、指定されたパラメータに従って、CPUユニット内で指定されたSMTPクライアントへのコネクションサーバー設定を定義します。

パラメータ

入力

sAccount(STRING)

名前とアドレス、ポート番号、認証方式を含むアカウントデータを設定します。

  • 送信元名称(オプションパラメータ)

    キーワード: 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アドレスが命令に指定されたとき、演算エラーは発生せず、出力bErrorTRUEにセットされます。

    • ホストネーム

      キーワード: HOST

      文法: 'HOST=SMTP.pidsx.com'

  • ポート番号 (オプションパラメータ)

    キーワード: 'PORT'

    文法:'PORT=xxxxx'(初期値:25)

    範囲:1~65535

  • SSL3/TSL1認証(オプションパラメータ). SSL3/TSL1認証を使用するか否かを指定します。

    キーワード:

    • SSL: SSL3/TLS1を使用する

    • NON: SSL3/TLS1を使用しない(デフォルト)

変換例:

  1. 送信元名称として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'

  2. 送信元名称をそのままで、送信元メールアドレスとして「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'

  3. 送信元名称としてFP7_002を、送信元メールアドレスとして「pewsunx@pewsunx.com」を、ホスト名としてSMTPmailserver.comを設定し、認証なしでポート1000を使用する場合:'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com,PORT=1000,NON'

  4. 送信元名称としてFP7_002を、送信元メールアドレスとして「pewsunx@pewsunx.com」を、ホスト名としてSMTPmailserver.comを設定し、ポート番号の設定と認証は変更しない場合:'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com'

sLogin(STRING)

ログインデータの設定

  • SMTP認証方法(必須のキーワード)

    キーワード:

    • CRAMCRAM-MD5が使用されます

    • PLAIN1: PLAIN1 (ID/PASS)が使用されます

    • PLAIN2: PLAIN2 (ID/PASS)が使用されます

    • LOGIN: LOGINが使用されます

  • アカウント(最大32文字)

    キーワード: ACCOUNT

    文法:'ACCOUNT=xxx' (デフォルト: root'ACCOUNT='を使用して、アカウントを削除します。

  • パスワード(最大32文字: 大文字と小文字が使用できます)

    キーワード: PASS

    文法:'PASS=xxx' (デフォルト: root'PASS='を使用して、パスワードを削除します。

このパラメータには、次の2つのキーワードが追加されています。
  • NOUSE:SMTP認証方式の設定は無視されます。

  • KEEP: 現在のログイン設定を保持します。

変換例:

  1. アカウント「sunx」のSMTP認証方式としてCRAM-MD5を、パスワード「control」で設定する場合:'CRAM,ACCOUNT=sunx,PASS=control'

  2. アカウント「root」のSMTP認証方式としてCRAM-MD5を設定し、パスワードを削除する場合:'CRAM,ACCOUNT=root,PASS='

  3. SMTP認証方式としてPLAIN1を設定し、アカウント名を削除してパスワード「SUNX」を使用する場合:'PLAIN1,ACCOUNT=,PASS=SUNX'

  4. SMTP認証方式としてPLAIN2を設定し、アカウント名とパスワードを削除する場合:'PLAIN2,ACCOUNT=,PASS='

  5. アカウント「panasonic」のSMTP認証方式としてLOGINを設定し、設定済みのパスワードを保持する場合:'PLAIN2,ACCOUNT=panasonic'

  6. すでに指定されているアカウント名のSMTP認証方式としてCRAM-MD5を設定し、パスワード「SUNX」を設定する場合:'CRAM,,PASS=SUNX'

  7. SMTP認証方式を使用せず、アカウントを使用せず、パスワードを変更しない場合:'NOUSE'

  8. SMTP認証方式、アカウント、およびパスワードを保持する場合:'KEEP'

sCommunication(STRING)

必要に応じて、オプションの通信パラメータを設定します。初期値のメールの言語は日本語に設定されていることに注意してください。

  • 最大メールサイズ

    キーワード: 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: 英語

このパラメータには、次の2つのキーワードが追加されています。
  • INITIALINITIAL:接続タイムアウト、再試行回数、リトライ間隔を初期値設定にリセットします。

  • KEEP:現在の通信設定を保持します。

変換例:

  1. 最大メールサイズの設定:1000KB、接続タイムアウト:30秒、再試行回数:2、リトライ間隔: 500秒、メール言語:日本語:'MAILSIZE=1000,TOUT=30,RTRY=2,RTTM=500,JPN'

  2. 最大メールサイズの設定:10000KB、接続タイムアウト:270秒、リトライなし、リトライ間隔:4900秒、メール言語:英語:'MAILSIZE=10000,TOUT=270,RTRY=0,RTTM=4900,ENG'

  3. 最大メールサイズの設定:500KB、接続タイムアウト:30秒、再試行回数:3、リトライ間隔: 200秒、メール言語:変更しない:'MAILSIZE=500,TOUT=30,RTRY=3,RTTM=200'

  4. 最大メールサイズの設定:5000KB、接続タイムアウト:変更しない、再試行回数:5、リトライ間隔:3000秒、メール言語:英語:'MAILSIZE=5000,,RTRY=5,RTTM=3000,ENG'

  5. 初期値設定にリセット(最大メールサイズ:100KB、接続タイムアウト:60秒、再試行回数:3、リトライ間隔: 600秒、初期値のメール言語:日本語):'INITIAL'

  6. 現在の設定をすべて保持:'KEEP'

出力

bError (BOOL)

以下の条件でTRUEになります。

  • 接続のタイムアウトが経過した場合

  • IPアドレスが無効な場合

エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。

解説

  • すべてのキーワードは、カンマで区切って登録します。例. 'NAME=abcd,FROM=sender@server.com'

  • 文字列データは、256文字以内にする必要があります。

  • この命令は、割り込みプログラム中で使用することはできません。

  • 指定するキーワードは、大文字、小文字とも使用することができます。 ただし、件名、メール本文、添付ファイルのファイル名では大文字と小文字が区別されます。

  • 命令を実行する前にsys_bIsEthernetInitializingFALSEであることを確認してください。命令が実行されるとsys_bIsEthernetInitializingTRUEになります。sys_bIsEthernetInitializingTRUEのときに命令を実行すると、エラーが発生します。

  • 命令は、指定した転送設定用の転送要求フラグまたは指定したnLogID番号の転送要求フラグがFALSEの場合にのみ実行することができます。転送要求フラグがTRUEの場合、演算エラーが発生します。

  • この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。

  • エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • パラメータに指定された値が許容範囲外の場合。

  • 同じキーワードを2回以上指定した場合。

  • 指定した転送設定用のメール転送要求フラグが「TRUE:転送要求済み」の場合。

  • 指定したnLogID番号の転送要求フラグがTRUEの場合。例:sys_blsLog0DataRecordingActiveTRUEの場合。

  • 命令が割り込みプログラム内で実行された場合。

  • 文字列データが256文字を超えた場合。

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • パラメータに指定された値が許容範囲外の場合。

  • 同じキーワードを2回以上指定した場合。

  • 指定した転送設定用のメール転送要求フラグが「TRUE:転送要求済み」の場合。

  • 指定したnLogID番号の転送要求フラグがTRUEの場合。例:sys_blsLog0DataRecordingActiveTRUEの場合。

  • 命令が割り込みプログラム内で実行された場合。

  • 文字列データが256文字を超えた場合。

sys_bIsCarry (1回のスキャンに対してTRUE)
  • 命令が不正なIPアドレスで実行された場合、sys_iEthernetConnectionErrorCodeが「1:不正なIPアドレスの指定」に設定されます

  • Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		bError: BOOL:=FALSE;
		bSetConnection: BOOL:=FALSE;
	END_VAR

POUボディ

bSetConnectionFALSEからTRUEに変わり、sys_bIsEthernetInitializingFALSEであると、命令が実行されます。

LDボディ

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

STボディ

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;

最終修正日: 2024-03-07このページに関するフィードバックお問い合わせ窓口