ページの先頭行へ戻る
Interstage List Works V10.4.0 帳票保管活用機能APIリファレンス(拡張パッケージ)
FUJITSU Software

1.4.13 LW_SendMail(メール送信) <Windows版/Solaris版のみ>

記述形式

int  LW_SendMail(int          iServerApiHandle,
                 LPSENDINFO   lpMailInfo,
                 LPRTNINFO    lpErrInfo)

機能

電子メールを、指定された送信先に送信します。また、添付ファイルを指定することもできます。


パラメタの説明

iServerApiHandle

サーバAPI識別子を指定します。

lpMailInfo

メール送信情報を格納したSENDINFO構造体 (メール送信情報構造体)のアドレスを指定します。

SENDINFO構造体のメンバ変数は、必ずすべてを指定してください。

SENDINFO構造体を、以下に示します。

typedef struct SendInfo
{
char           *iFromAddress;                   /* 発信者アドレス                     */
unsigned char  *iFromUserName;                  /* 発信者の名前                       */
char           **iToAddress;                    /* 送信先アドレスのリスト             */
long           iToAddressCount;                 /* 送信先アドレス数                   */
unsigned char  *iSubject;                       /* メールの表題                       */
unsigned char  *iMessage;                       /* メールの本文                       */
char           *iCharCode;                      /* 文字列の文字コード系名             */
void           *iIconv_ext_exp;                 /* リザーブ                           */
unsigned char  **iAttachments;                  /* 添付ファイルのパスのリスト         */
long           iAttachmentsCount;               /* 添付ファイル数                     */
char           *iAttachmentsFilenameCharCode;   /* 添付ファイルの文字コード系名       */
long           iEncodeType;                     /* MIMEのエンコードタイプ             */
long           iIsPartial;                      /* 分割メール送信                     */
long           iMaxPartSize;                    /* 分割された1メール分の最大バイト数  */
long           iPartSendTerm;                   /*分割したメールの送信間隔            */
char           *iSMTPServerName;                /* SMTPサーバ名                       */
long           iPort;                           /* SMTPサーバのポート番号             */
long           iTimeout;                        /* SMTPサーバのタイムアウト秒数       */
char           cc_Resv[188];                    /* リザーブ                           */
} SENDINFO;
typedef  SENDINFO*  LPSENDINFO;

lpErrInfo

RTNINFO構造体(メール送信復帰情報構造体)のアドレスを指定します。

RTNINFO構造体を、以下に示します。

typedef struct RtnInfo
{
long  mIndex;               /* エラー検出時の送信先アドレスのインデックス値  */
char  cc_Resv[60];
} RTNINFO
typedef  RTNINFO*    LPRTNINFO;

SENDINFO構造体の説明

メンバ変数

項目

説明

*iFromAddress

発信者アドレス  (注1)

必ず指定してください。

発信者のメールアドレスの格納先を指定します。

指定できるアドレスは、1つです。

格納先の最終文字にはNULLが設定されている必要があります。

以下に指定例を示します。

指定例)abc@mail.xxx.com

*iFromUserName

発信者の名前  (注1)

メール発信者の名前の格納先を指定します。

格納先の最終文字にはNULLが設定されている必要があります。

受信先ではメール発信者に、本情報とiFromAddressで指定された文字列から組み立てた、以下の形式の文字列が表示されます。

形式:iFromUserName<iFromAddress>

本情報に「発信者の名前」を指定しない場合、以下の形式で表示されます。

形式:iFromAddress

文字列の長さは、iFromUserNameとiSubjectを合わせて268435455バイト以内で指定します。

指定する名前の文字コード系名はiCharCodeで指定します。 (注2) (注5)

本情報は省略可能です。省略する場合は、空文字列へのポインタを指定します。 (注3)

**iToAddress

送信先アドレスのリスト

必ず指定してください。

送信先メールアドレスのリストを指定します。

指定形式の詳細は、“iToAddressの指定形式”を参照してください。

iToAddressCount

送信先アドレス数

必ず指定してください。

iToAddressで指定した送信先アドレスの数を1から2147483647までの数値で指定します。

*iSubject

メールの表題  (注1)

メールの表題の格納先を指定します。格納先の最終文字にはNULLが設定されている必要があります。

文字列の長さは、iFromUserNameとiSubjectをあわせて268435455バイト以内で指定します。

指定する表題の文字コード系名はiCharCodeで指定します。 (注2)

本情報は省略可能です。省略する場合は、空文字列へのポインタを指定します。 (注3)

*iMessage

メールの本文  (注1)

メールの本文の格納先を指定します。格納先の最終文字にはNULLが設定されている必要があります。

本文が複数行の場合は、行の終わりにCR(0x0d)、LF(0x0a)を設定します。

文字列の長さは、2147483647バイト以内で指定します。

文字列の文字コード系名はiCharCodeで指定します。 (注2)

本情報は省略可能です。省略する場合は、空文字列へのポインタを指定します。 (注3)

*iCharCode

文字列の文字コード系名

必ず指定してください。

メールヘッダ(iFromUserName, iSubject)と、メール本文(iMessage)で渡す文字列の文字コード系名の格納先を指定します。

格納先の最終文字にはNULLが設定されている必要があります。

指定可能な文字コード系名については、“iCharCodeパラメタで指定可能な値”を参照してください。

*iIconv_ext_exp

リザーブ

NULLを指定します。

**iAttachments

添付ファイルのパスのリスト  (注1)

添付ファイルのパスのリストを指定します。 (注4)

指定形式の詳細は“iAttachmentsの指定形式”を参照してください。

添付ファイルがない場合、iAttachmentsCountで0を指定します。この場合、本リストは無視されます。

iAttachmentsCount

添付ファイル数

iAttachmentsで指定された添付ファイルのパスの数を0から2147483647までの数値で指定します。添付ファイルがない場合は0を指定します。

*iAttachmentsFilenameCharCode

添付ファイル名の文字コード系名

iAttachmentsで指定される添付ファイル名の文字コード系名の格納先を指定します。格納先の最終文字にはNULLが設定されている必要があります。

指定可能な文字コード系名については、“iCharCodeパラメタで指定可能な値”を参照してください。

本情報にNULLを指定した場合は、iCharCodeで指定された文字コード系名を使用します。

iEncodeType

MIMEのエンコードタイプ

1(MIMEのエンコードタイプ:base64)を指定します。

iIsPartial

分割メール送信

分割メール送信するかどうかを、1か2の数値で指定します。

1:分割する
2:分割しない

iMaxPartSize

分割した1メール分の最大バイト数

iIsPartialで「分割する」を指定した場合、分割した1メール分の最大バイト数をキロバイト単位で1から2097151までの数値で指定します。

iIsPartialで「分割しない」を指定した場合は、本情報の値は無視されます。

iPartSendTerm

分割したメールの送信間隔

iIsPartialで「分割する」を指定した場合、分割したメールの送信間隔を秒単位で0から2147483647までの数値で指定します。1以上の値を指定することをお勧めします。

iIsPartialで「分割しない」を指定した場合は、本情報の値は無視されます。

*iSMTPServerName

SMTPサーバ名

必ず指定してください。

メール送信のSMTPサーバ名の格納先を指定します。格納先の最終文字にはNULLが設定されている必要があります。

SMTPサーバ名は、FQDN名で指定します。以下に指定例を示します。

指定例)smtp.foo.xxx.com

Iport

SMTPサーバのポート番号

SMTPサーバのポート番号を指定します。0が指定された場合は、デフォルト値(25)が指定されたとみなします。

デフォルト値(25)がすでに使用されている場合、ポート番号は、以下の範囲で未使用の値を指定してください。

Windows版の場合:5001~32768

Solaris版の場合:1024~32767

Itimeout

SMTPサーバのタイムアウト秒数

  • Windows版の場合

    SMTPサーバ接続のタイムアウト秒数を0から2147483647までの数値で指定します。

  • Solaris版の場合

    SMTPサーバ接続のタイムアウト秒数を0から100,000,000までの数値で指定します。

Windows版、Solaris版ともに0が指定された場合は、デフォルト値(600秒)が指定されたとみなします。

cc_Resv

リザーブ

NULLを指定します。

注1:

次のパラメタで指定する情報のバイト数の合計が700MB以下となるようにしてください。700MBを超えるとメール送信に失敗する場合があります。

  • 発信者アドレス(iFromAddress)

  • 発信者の名前(iFromUserName)

  • メールの表題(iSubject)

  • メールの本文(iMessage)

  • 添付ファイルのサイズの合計(iAttachmentsで指定する各ファイル名のファイルサイズの合計)

注2:

指定された格納先の文字列を、JISコードに変換し送信します。半角カナ文字は、全角カナ文字に変換されます。また、変換元コードの文字に対応する文字が、変換先文字コード(JIS)にない場合は、アンダースコア(_)に変換されます。

注3:

「空文字列へのポインタ」とは、先頭がNULLバイトである文字配列へのポインタのことです。

注4:

添付ファイル名に半角カナ文字が含まれていた場合、メール送信時にファイル名の半角カナ文字を、全角カナ文字に変換します。このため、メール送信時に指定した添付ファイル名と、受信時のファイル名が異なる場合があります。

注5:
  • 半角カナ文字を含む場合は、40バイト以内で指定する必要があります。

  • コロン(:)は(":")に変換される場合があります。

RTNINFO構造体の説明

メンバ変数

項目

説明

mIndex

エラー検出時の送信先アドレスのインデックス値

SMTPサーバへのメール送信依頼時にエラーを検出した場合、iToAddressが指す送信先アドレスリストのインデックス値を返します。このインデックス値は、エラーを検出した送信先メールアドレスの格納先を指しています。iToAddressで指定した最初のアドレスの送信先メールアドレスでエラーが発生した場合、0が設定されます。(注1)

注1:

SMTPサーバへのメール送信依頼は、iToAddressで指定されたリストの最初の送信先メールアドレスから順番に行われます。このとき、途中でエラーを検出した場合、すべての処理を中断し、エラー復帰します。

この復帰時に、エラーを検出したメール送信先アドレスを指す、iToAddressのポインタ配列の添字をmIndexに設定します。この値から、エラーが発生した送信先、および、送信依頼が完了した送信先を知ることができます。


iToAddressの指定形式

注1:

メール送信依頼時にエラーを検出した場合、エラーを検出した送信先メールアドレスを示す本配列の添字の値が、RTNINFO構造体のmIndexに設定されます。

注2:

各配列の最終文字にはNULLが設定されている必要があります。

注3:

メール送信先アドレスの指定例を以下に示します。

指定例)aaa@mail.xxx.com

iAttachmentsの指定形式

注1:各配列の最終文字にはNULLが設定されている必要があります。

注2:添付ファイルのパスの指定例を以下に示します。

  • Windows版の場合

    C:\work\report.pdf
  • Solaris版の場合

    /var/tmp/report.pdf

iCharCodeパラメタで指定可能な値

指定値

コード系名

備考

sjis

シフトJIS (SJISMS, R90,SJISDOS)

“SJIS”の代表コード系名 (注1)

デフォルト値は、SJISMSです。

sjisdos

シフトJIS (DOS)

sjisms

シフトJIS (MS)

U90

EUC (U90, S90)

“U90”の代表コード系名 (注1)

デフォルト値は、U90です。

S90

EUC (S90)

注1:

代表コード系名を指定した場合、デフォルト値のコード系名として解釈します。Charset Managerがインストールされている場合、Charset Managerが提供する変換仕様変更ユーティリティで、代表コード系名のデフォルト値を変更することができます。変更した場合、変更後のデフォルト値に従います。


復帰値

0

正常終了しました。

-1

異常終了しました。


参考

  • リスト管理サーバの環境設定でメールの送信サイズを制限している場合は、リスト管理サーバ環境設定に設定されている値が有効となります。

  • 添付ファイルを複数指定した場合は、添付ファイルの合計サイズと制限サイズを比較します。

  • 異常終了した場合に以下のサーバ機能APIを実行すると、エラーの詳細を取得することができます。

    エラーコードの取得

    LW_GetServerApiErrCode(サーバ機能APIエラーコード取得)

    LW_GetServerApiErrCodeについては、“1.3.1 LW_GetServerApiErrCode(サーバ機能APIエラーコード取得)”を参照してください。
    エラーメッセージの取得

    LW_GetServerApiErrMsg(サーバ機能APIエラーメッセージ取得)

    LW_GetServerApiErrMsgについては、“1.3.2 LW_GetServerApiErrMsg(サーバ機能APIエラーメッセージ取得)”を参照してください。