9.153 MAIL_START
この関数を使用して電子メール・セッションを開始します。
呼び出し元ファンクションは、この開始されたセッションを使用して、1つの電子メール・メッセージを定義して送信することができます。
この組み込み関数を使用する前に「電子メール組み込み関数に関する注意」を参照してください。
各製品の対応
LANSA/AD |
使用可 |
Visual LANSA for Windows |
使用可 |
Visual LANSA for Linux |
未対応 |
引数
なし
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
任意 |
戻りコード OK:アクションが完了した ER:エラーが発生した |
2 |
2 |
技術ノート
· MAIL_STARTは、既存のメール・メッセージ情報をすべて破棄して、新たなメール・セッションを開始します。
· 一度に1つの電子メール定義だけを進捗させることができます(つまり、同一ジョブで同時に2つの電子メール定義を定義して送信することはできません)。
· MAIL_SEND組み込み関数を使用してメッセージを送信しない限り、電子メール定義の詳細は消えてしまいます。
· エラーが発生した場合、電子メール定義の詳細はすべて破棄されてしまいます。処理を再開するには、MAIL_STARTを新たに呼び出す必要があります。
例
以下の例では、各種組み込み関数を使用して電子メール・メッセージの詳細をすべて定義した後にそれを送信しています。
注:テストで以下の例を使用する場合は、MAIL_ADD_RECIPIENTおよびMAIL_ADD_ORIGINATORの例で使用されている<-- name -->および<-- recipient@address -->を置き換える必要があります。
FUNCTION OPTIONS(*DIRECT)
DEFINE FIELD(#LEM_RETC) TYPE(*CHAR) LENGTH(2) LABEL('Return Code')
DEF_COND NAME(*OKAY) COND('#LEM_RETC = OK')
DEF_COND NAME(*NOTOKAY) COND('#LEM_RETC *NE OK')
DEF_COND NAME(*CLIENT) COND('*CPUTYPE *NE AS400')
DEF_COND NAME(*HOST) COND('*CPUTYPE *EQ AS400')
**********
BEGIN_LOOP
********** COMMENT(Start Mail message - Initialize)
USE BUILTIN(MAIL_START) TO_GET(#LEM_RETC)
********** COMMENT(If not AS/400, set MAPI arguments)
IF COND(*CLIENT)
********** COMMENT(Use the Windows Default Profile)
USE BUILTIN(MAIL_SET_OPTION) WITH_ARGS('PROFILENAME' 'Windows Messaging Settings') TO_GET(#LEM_RETC)
********** COMMENT(Assume user has no Password)
USE BUILTIN(MAIL_SET_OPTION) WITH_ARGS('PASSWORD' *BLANK) TO_GET(#LEM_RETC)
********** COMMENT(Use existing MAPI mail session)
********** COMMENT(from logged on Email client)
USE BUILTIN(MAIL_SET_OPTION) WITH_ARGS('MAPI_NEW_SESSION' N) TO_GET(#LEM_RETC)
********** COMMENT(Display MAPI Logon dialog if required)
USE BUILTIN(MAIL_SET_OPTION) WITH_ARGS('MAPI_LOGON_UI' Y) TO_GET(#LEM_RETC)
********** COMMENT(Do not display MAPI Password Dialog)
********** COMMENT(mutually exclusive to MAPI_LOGON_UI))
USE BUILTIN(MAIL_SET_OPTION) WITH_ARGS('MAPI_PASSWORD_UI' N) TO_GET(#LEM_RETC)
********** COMMENT(Set Recipient using TO argument)
********** COMMENT(may also set others for TO CC BCC)
USE BUILTIN(MAIL_ADD_RECIPIENT) WITH_ARGS(TO '<-- name -->' 'SMTP:<-- recipient@address -->') TO_GET(#LEM_RETC)
********** COMMENT(To define attachment file remove comments)
*** USE BUILTIN(MAIL_ADD_ATTACHMENT) WITH_ARGS('c:\config.sys' 'MyConfig.txt') TO_GET(#LEM_RETC)
ELSE
********** COMMENT(Set Recipient using TO argument)
USE BUILTIN(MAIL_ADD_RECIPIENT) WITH_ARGS(TO 'SMTP:<-- recipient@address -->') TO_GET(#LEM_RETC)
ENDIF
IF COND(*HOST)
********** COMMENT(Define Message Originator if AS/400)
********** COMMENT(MAPI on non-AS/400 usually defaults)
USE BUILTIN(MAIL_ADD_ORIGINATOR) WITH_ARGS('SMTP:<-- recipient@address -->') TO_GET(#LEM_RETC)
ENDIF
********** COMMENT(Set receipt acknowledgement is required)
USE BUILTIN(MAIL_SET_OPTION) WITH_ARGS(RECEIPT_REQUESTED Y) TO_GET(#LEM_RETC)
********** COMMENT(Set Subject text)
USE BUILTIN(MAIL_SET_SUBJECT) WITH_ARGS('Testing Email Built-In Functions') TO_GET(#LEM_RETC)
********** COMMENT(Set message Text)
USE BUILTIN(MAIL_ADD_TEXT) WITH_ARGS('Hello,' Y) TO_GET(#LEM_RETC)
DEFINE FIELD(#BIGLINE) TYPE(*CHAR) LENGTH(255) LABEL('Big Text Line') INPUT_ATR(LC)
CHANGE FIELD(#BIGLINE) TO('''I am sending this message just to try out the LANSA Email Built-In Functions.''')
USE BUILTIN(MAIL_ADD_TEXT) WITH_ARGS(#BIGLINE Y) TO_GET(#LEM_RETC)
USE BUILTIN(MAIL_ADD_TEXT) WITH_ARGS('Thank You' N) TO_GET(#LEM_RETC)
********** COMMENT(Prompt to SEND the mail then send)
DEFINE FIELD(#LTEXT2) TYPE(*CHAR) LENGTH(1) DESC('Press ENTER to SEND or CANCEL')
POP_UP FIELDS((#LTEXT2 *L4 *P4 *DESC *NC)) IDENTIFY(*LABEL) AT_LOC(7 20) WITH_SIZE(57 10) PANEL_TITL('Confirm Mail Send...') EXIT_KEY(*NO) PROMPT_KEY(*NO) STD_HEAD(*YES)
USE BUILTIN(MAIL_SEND) TO_GET(#LEM_RETC)
IF COND(*OKAY)
MESSAGE MSGTXT('Send SUCCESSFUL.')
ELSE
MESSAGE MSGTXT('Send FAILED.')
ENDIF
END_LOOP
**********