記述形式
int LW_SendMail(int iServerApiHandle, LPSENDINFO lpMailInfo, LPRTNINFO lpErrInfo)
機能
電子メールを、指定された送信先に送信します。また、添付ファイルを指定することもできます。
パラメタの説明
サーバAPI識別子を指定します。
メール送信情報を格納した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;
RTNINFO構造体(メール送信復帰情報構造体)のアドレスを指定します。
RTNINFO構造体を、以下に示します。
typedef struct RtnInfo { long mIndex; /* エラー検出時の送信先アドレスのインデックス値 */ char cc_Resv[60]; } RTNINFO typedef RTNINFO* LPRTNINFO;
メンバ変数 | 項目 | 説明 |
---|---|---|
*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版、Solaris版ともに0が指定された場合は、デフォルト値(600秒)が指定されたとみなします。 |
cc_Resv | リザーブ | NULLを指定します。 |
次のパラメタで指定する情報のバイト数の合計が700MB以下となるようにしてください。700MBを超えるとメール送信に失敗する場合があります。
発信者アドレス(iFromAddress)
発信者の名前(iFromUserName)
メールの表題(iSubject)
メールの本文(iMessage)
添付ファイルのサイズの合計(iAttachmentsで指定する各ファイル名のファイルサイズの合計)
指定された格納先の文字列を、JISコードに変換し送信します。半角カナ文字は、全角カナ文字に変換されます。また、変換元コードの文字に対応する文字が、変換先文字コード(JIS)にない場合は、アンダースコア(_)に変換されます。
添付ファイル名に半角カナ文字が含まれていた場合、メール送信時にファイル名の半角カナ文字を、全角カナ文字に変換します。このため、メール送信時に指定した添付ファイル名と、受信時のファイル名が異なる場合があります。
半角カナ文字を含む場合は、40バイト以内で指定する必要があります。
コロン(:)は(":")に変換される場合があります。
メンバ変数 | 項目 | 説明 |
---|---|---|
mIndex | エラー検出時の送信先アドレスのインデックス値 | SMTPサーバへのメール送信依頼時にエラーを検出した場合、iToAddressが指す送信先アドレスリストのインデックス値を返します。このインデックス値は、エラーを検出した送信先メールアドレスの格納先を指しています。iToAddressで指定した最初のアドレスの送信先メールアドレスでエラーが発生した場合、0が設定されます。(注1) |
SMTPサーバへのメール送信依頼は、iToAddressで指定されたリストの最初の送信先メールアドレスから順番に行われます。このとき、途中でエラーを検出した場合、すべての処理を中断し、エラー復帰します。
この復帰時に、エラーを検出したメール送信先アドレスを指す、iToAddressのポインタ配列の添字をmIndexに設定します。この値から、エラーが発生した送信先、および、送信依頼が完了した送信先を知ることができます。
メール送信依頼時にエラーを検出した場合、エラーを検出した送信先メールアドレスを示す本配列の添字の値が、RTNINFO構造体のmIndexに設定されます。
各配列の最終文字にはNULLが設定されている必要があります。
メール送信先アドレスの指定例を以下に示します。
指定例)aaa@mail.xxx.com
注1:各配列の最終文字にはNULLが設定されている必要があります。
注2:添付ファイルのパスの指定例を以下に示します。
Windows版の場合
C:\work\report.pdf
Solaris版の場合
/var/tmp/report.pdf
指定値 | コード系名 | 備考 |
---|---|---|
sjis | シフトJIS (SJISMS, R90,SJISDOS) | “SJIS”の代表コード系名 (注1) デフォルト値は、SJISMSです。 |
sjisdos | シフトJIS (DOS) | |
sjisms | シフトJIS (MS) | |
U90 | EUC (U90, S90) | “U90”の代表コード系名 (注1) デフォルト値は、U90です。 |
S90 | EUC (S90) |
代表コード系名を指定した場合、デフォルト値のコード系名として解釈します。Charset Managerがインストールされている場合、Charset Managerが提供する変換仕様変更ユーティリティで、代表コード系名のデフォルト値を変更することができます。変更した場合、変更後のデフォルト値に従います。
復帰値
正常終了しました。
異常終了しました。
参考
リスト管理サーバの環境設定でメールの送信サイズを制限している場合は、リスト管理サーバ環境設定に設定されている値が有効となります。
添付ファイルを複数指定した場合は、添付ファイルの合計サイズと制限サイズを比較します。
異常終了した場合に以下のサーバ機能APIを実行すると、エラーの詳細を取得することができます。
LW_GetServerApiErrCode(サーバ機能APIエラーコード取得)
LW_GetServerApiErrCodeについては、“1.3.1 LW_GetServerApiErrCode(サーバ機能APIエラーコード取得)”を参照してください。 |
LW_GetServerApiErrMsg(サーバ機能APIエラーメッセージ取得)
LW_GetServerApiErrMsgについては、“1.3.2 LW_GetServerApiErrMsg(サーバ機能APIエラーメッセージ取得)”を参照してください。 |