GetAccountProp/SetAccountProp関数(TKInfo.dll)(Ver6.80対応版)
 GetAccountProp関数は、LoadAccountProp関数で読み込まれたアカウントプロパティ中の値を取り出して返します。
 SetAccountProp関数は、LoadAccountProp関数で読み込まれたアカウントプロパティ中の値を書き換えます。

 SetAccountProp関数で書き換えた内容は、後からSaveAccountProp関数で保存しないと、実際のアカウントプロパティには反映されません。また、送受信途中でSaveAccountPropしても、現在の送受信のためのアカウントプロパティには反映されず、次の送受信以降にだけ反映されます。

パラメータ1(文字列型)
 取り出し/書き換えたいパラメータの名前です。名前には以下の種類があります。
 ちなみに名前には法則があり、「sz」で始まる物は文字列型、「f」で始まる物はフラグ(0か1かの値)、「c」または「n」で始まる物は数値型となっています。
szTitleアカウント名。これを変更してSaveAccountPropすると、アカウント名(=フォルダ名)が変更される。
szName送信者の名前
szEmailメールアドレス
szOrganization所属
szReply返信用のアドレス(「Reply-To:」に設定する値)
fBccAlways「Bcc:」ヘッダを追加するかどうか(szBccEmailとセット)
szBccEmail「Bcc:」ヘッダに設定する文字列(メールアドレス)
szSmtpServerSMTPサーバーのホスト名
szPop3ServerPOP3サーバーのホスト名
szPop3AccountPOP3サーバー用のユーザーアカウント
szPop3PasswordPOP3サーバー用のパスワード
注意:GetAccountPropでszPop3Passwordを取得しようとするとエラーになり、内容の取得は失敗します。SetAccountProp専用になります。
szDialupEntryこのアカウント用のダイヤルアップ先の名前
fSavePasswordPOP3サーバー用のパスワードを保存するかどうかのフラグ
fPopBeforeSmtpPOP before SMTPするかどうかのフラグ
fSaveOnServer受信したメールをサーバー上に残すかどうかのフラグ
fDialupこのアカウント用のダイヤルアップ接続を指定するかどうかのフラグ
(1の場合はszDialupEntryが有効となる)
fDialupAtRecv受信時にダイヤルアップ接続が必要かどうか。fDialupが1の場合にのみ有効。
fDialupAtSend送信時にダイヤルアップ接続が必要かどうか。fDialupが1の場合にのみ有効。
fLeaveDialupfDialupが1の場合、送受信後にダイヤルアップ接続を切断するかどうかのフラグ。
fRecvLog受信ログを作成するかどうかのフラグ
fSendLog送信ログを作成するかどうかのフラグ
fExcludeFromAllTransmitこのアカウントを「すべて送受信」の対象外とするかどうかのフラグ(1の時に対象外となる)
fFilterAtRecv受信時に自動振り分けするかどうかのフラグ
fReplySignature返信時にも署名を付けるかどうかのフラグ
fForwardSignature転送時にも署名を付けるかどうかのフラグ
nLogRetainMonthログを保持する期間(何ヶ月単位かの値)
fApopAPOPを使うかどうかのフラグ
cSaveOnServerDatefSaveOnServerが1の場合、メールをサーバー上に保持しておく期間(日数)の指定。0の場合はずっと置いておくという意味。
fExcludeFromAutoDownこのアカウントを「定期的な受信」の対象外とするかどうかのフラグ(1の時に対象外となる)
fFilterAtSend送信時に自動振り分けするかどうかのフラグ
nAutoDownInterval  定期受信の時の、定期受信の間隔に対して、このアカウントを「何回に1回の割合で対象とするか」の値。例えばここが1なら定期受信時に毎回受信し、2なら2回に1回の割合で受信する。
nPop3PortPOP3サーバーへ接続するポート番号
nSmtpPortSMTPサーバーへ接続するポート番号
szSmtpAccountSMTPサーバーに認証が必要な場合、またはPOP before SMTPで、それ用の認証サーバーが指定してある場合に、それ用のアカウント
szSmtpPassword同じく、SMTPサーバーまたはPOP before SMTP時用のパスワード
注意:GetAccountPropでszSmtpPasswordを取得しようとするとエラーになり、内容の取得は失敗します。SetAccountProp専用になります。
fSaveSmtpPasswordSMTPサーバー用のパスワードを保存するかどうかのフラグ
cPopLoginDelayPOP before SMTP時の、POPログインしてからSMTP送信するまでの遅延時間(秒単位)。遅延無しの場合は0。
fESMTPSMTP-AUTHがONかどうかのフラグ。
szAuthServerPOP before SMTPで特定の認証サーバーを必要とする場合、そのホスト名。
fDontUseUidl「UIDLコマンドを使わない」のフラグ
cServerTimeoutサーバーとのやりとりでのタイムアウト時間(秒数)、デフォルトは120だが、0なっている場合も120秒という意味になる。
fDontChangeIconAtRecv定期受信時に何か受信してもアイコンを変化させたり音を鳴らしたりしないフラグ
fSaveUidlInMailUIDL文字列の内容をメールに保存するかどうかのフラグ
このフラグはfImapSync等の他の特定のフラグがONになると勝手にONになります。また、OFFにしようとしても、他の特定のフラグがONだとOFFに出来ません。
fDontUseTopTOPコマンドを使わないフラグ
cbSizeLimit受信時のメールサイズの制限(バイト単位)、0以下の場合は制限しないという意味。(負の数もありえる)
szEmailAlias自分用メールアドレスの別名。
fMailFromFrom送信時のMAIL FROM <...>コマンドでメールの「From:」ヘッダを参照するかどうかのフラグ(メールサーバーについての高度な設定)。
cbPartialSend送信時のメールの分割サイズ(バイト数)、0の場合は分割無し。
fFlyingRecv受信の高速化のフラグ
szSignature署名
szNewTemplate新規メール用のテンプレート
szReplyTemplate返信メール用のテンプレート
szForwardTemplate転送メール用のテンプレート
szAccountGroup現在アカウントが属しているアカウントグループ名
fPopOverSSLPOP over SSLのフラグ
fSmtpOverSSLSMTP over SSLのフラグ
fSSLNoCertificateCheck「SSLで、証明書を検証しない」のフラグ
fPopOverSSLV3「fSSLVersionSpecify」がOFFの場合用:POP over SSLでの、TLS/SSL3.0を有効にするかどうかのフラグ。1の場合はTLSまたはSSL version3.0が有効となり、0の場合はSSL version2.0でのみの接続となる。現在の秀丸メールでは設定不可です。
fSmtpOverSSLV3「fSSLVersionSpecify」がOFFの場合用:同じく、SMTP over SSLでの、TLS/SSL3.0を有効とするかどうか。現在の秀丸メールでは設定不可です。
fPopStartTLSPOP over SSLで、STARTTLSを使うかどうか
fSmtpStartTLSSMTP over SSLで、STARTTLSを使うかどうか
fNTLMAuth「セキュリティで保護されたパスワード認証」のフラグ
fDontSpamFilter迷惑メールフィルターを通すかどうか(1なら通さない)
szBookRelationアドレス帳グループとの関連づけ(""なら関連づけ無し)
szRecvBypass受信したメールを他のアカウントへバイパスするかどうか、および、そのバイパス先(""ならバイパスしない)
fSentBypass送信済みメールもパイパスするかどうかのフラグ
fIgnoreRecvError「受信時にエラーが起きてもメッセージ表示しない」のフラグ
fRemoteMailAtAutoDown自動受信時に、リモートメールの一覧取得のみを実行するかどうかのフラグ
szMailFromSpecify送信時のMAIL FROM:<...>で通知するメールアドレスを指定する用(""なら指定しない)
fHeloHost送信時のHELOまたはEHLOコマンドで通知するホスト名を特別に指定するかどうか
szHeloHostfHeloHostが1の時の、ホスト名の指定
authtypeSMTP認証の方式指定、0なら自動、1ならCRAM-MD5、2ならLOGIN、3ならPLAIN
recvSrv受信メールサーバーの種類。0ならPOP3サーバー、0xA9ならIMAP4サーバー(V5.20から追加)
nAccountIconフォルダ枠に表示するアイコンの種類。0〜7まで指定出来ます。(V5.30β8から追加)

以下はVersion5.72以降からのみ使えます。
fCcAlways「Cc:」ヘッダを追加するかどうか(szCcEmailとセット)
szCcEmail「Cc:」ヘッダに設定する文字列(メールアドレス)
fNN2MThrough「メーラーdeネットニュース専用のログイン手続きをする」のオプション
fBccNoAttachBcc宛先に添付ファイルを送らない指定
fPreFilter「メールのヘッダだけ受信して不要なメールを選別する」のオプション
fCheckMailBoxLimit「サーバー上のメール総バイト数が一定以上になったら警告する」のオプション
fImapCRAMMD5「POP3/IMAP4サーバーへの認証方式=CRAM-MD5」のオプション
fImapAllFolderIMAP4での「メールをダウンロードする対象フォルダ」の「対象フォルダの指定」か「除外対象フォルダの指定」かどっちか。1なら「除外対象フォルダの指定」の意味。
fImapUnseenIMAP4での「未読属性の付いたメールのみをダウンロードする」のオプション
fImapLeaveUnseenIMAP4での「ダウンロードしたメールをサーバー上で未読属性のままにする」のオプション
fAesEncryptアカウント毎設定がAES暗号化されてるかどうかのフラグ。(書き込み不可)
fShowRemoteFolder「リモートメール一覧をフォルダとして表示する」のオプション
fImapInboxExcludeIMAP4での受信対象フォルダにINBOXを含むかどうかのフラグ
nMailBoxLimitLowByteサーバー上のメール総バイトのチェック値(1〜65535)の下位バイト
nMailBoxLimitHighByteサーバー上のメール総バイトのチェック値(1〜65535)の上位バイト
fCheckMailSize「LISTコマンド時のメールサイズと実際のサイズが同じかチェックする」のオプション
fDownloadReverse「最新のメールから順番にダウンロードする」のオプション
fDontGdsGoogleデスクトップでメール検索するオプションがONの場合の、アカウント毎のON/OFFオプション(1ならOFF)
fRetryLogin「サーバーへのログインに失敗したら再試行する」のオプション
fCcNoForward「『そのまま転送』の場合はBcc/Ccヘッダを付けない」のオプション

以下はVersion6.78β2以降からのみ使えます。
fSSLVersionSpecify「SSL/TLSのバージョン指定」のオプション
fNotSSL20「SSL/TLSのバージョン指定」がONの時の、「SSL2.0」のオプション。
0でON、1でOFF。(意味が逆なので注意!)
fSSL30「SSL/TLSのバージョン指定」がONの時の、「SSL3.0」のオプション
fTLS10「SSL/TLSのバージョン指定」がONの時の、「TLS1.0」のオプション
fTLS11「SSL/TLSのバージョン指定」がONの時の、「TLS1.1」のオプション
fTLS12「SSL/TLSのバージョン指定」がONの時の、「TLS1.2」のオプション
fSecondName「差出人の名前に別の名前も切り替えて使う」のオプション
fImapUploadSent「送信済みメールをIMAPサーバーに自動アップロード」のオプション
fThreadFilterRecv「スレッドの親メールと同じフォルダに振り分ける」の「受信したメール」オプション
fThreadFilterSendもONにすると、「両方」の意味になる。
fThreadFilterSend「スレッドの親メールと同じフォルダに振り分ける」の「送信したメール」オプション
fThreadFilterRecvもONにすると、「両方」の意味になる。
fImapIdle定期受信の「アカウント毎の指定」の中にある「IDLEコマンドを使って新着メールを監視する」のオプション
fImapIdleSkipAutoDown定期受信の「アカウント毎の指定」の中にある「IDLEコマンドの応答があるまで定期受信しない」のオプション
fOAuth「GmailのOAuth認証」のオプション
fImapCheckDuplicationIMAP4のPOP3風モードでの「重複メールは受信しない」のオプション
fDontAutoCollapse「全般的な設定 - フォルダ」の「アカウント/フォルダの自動折りたたみ」の「例外指定」の中にある自動折りたたみしない用のオプション
fImapRetrieveSlow「IMAPゆっくり受信(トラブル対策用)」のオプション
fRetryLoginEver「サーバーへのログインに失敗したら再試行する」の下にある「成功するまで再試行を繰り返す」のオプション
fDeleteReverseSync「サーバーで削除済みのメールは受信フォルダ上からも削除」のオプション
fDeleteReverseSyncLong「サーバーで削除済みのメールは受信フォルダ上からも削除」の下にある「削除チェック対象を無期限にする」のオプション
nSendableMailInMinute「連続送信をゆっくりにする」およびその通数指定。負の数または0の場合はオプションOFF、1〜100の値の場合はオプションONで、通数がその値の指定。
szSecondName1「差出人の名前に別の名前も切り替えて使う」の「名前1」。名前2はマクロからは指定不可。というか、こっちをセットすると名前2は消えてしまう制限があります。
szImapUploadSentFolder送信済みメールをIMAPサーバーに自動アップロードする時の、アップロード先のアカウント名+フォルダ名
fDeleteRemoteSync「削除されたメールは次回受信時にサーバー上からも削除する」のオプション
fDeleteRemoteSyncTrash「削除されたメールは次回受信時にサーバー上からも削除する」の下にある「(ゴミ箱フォルダへ移動しただけでもサーバーから削除)」のオプション
fImapSyncIMAP時の同期モードかどうか。1だと同期モード、0だとPOP3風モード
fImapSyncMoveCopyIMAP同期モードでの「メールの移動/コピーもサーバー上に反映させる」のオプション
fImapSyncTrashIMAP同期モードでの「ゴミ箱用のフォルダ指定」のオプション
szImapSyncTrashIMAP同期モードでの「ゴミ箱用フォルダの指定」の右側のゴミ箱用フォルダ名
fImapSyncDraftIMAP同期モードでの「草稿フォルダの同期」のオプション
szImapSyncDraftIMAP同期モードでの「草稿フォルダの同期」のフォルダ名
fImapSyncUnreadIMAP同期モードでの「未読/既読状態の同期」のオプション
fImapSyncDontDeleteFolderIMAP同期モードでの「フォルダの削除はしない」のオプション
fImapSyncSoonIMAP4での「即座に同期」のオプション
fImapNotSyncFolderNotShowIMAP同期モードでの「対象じゃないフォルダは秀丸メール上に表示しない」のオプション


パラメータ2(SetAccountPropの時のみ)
 書き換える値です。フラグまたは数値の場合は数値を指定し、文字列型の値の場合は文字列を指定しないといけないです。

注意: セットする値がおかしいと、それが原因で秀丸メールが誤動作をする可能性があります。その辺ご注意ください。
 どういう値をセットすればいいのか分からない場合は、アカウント毎設定をいろいろいじってそれによってGetAccountPropの値がどう変化するかをご自身で調べてみることをお勧めします。


返り値(数値型、文字列型) GetAccountPropの場合
 GetAccountPropの返り値は、フラグまたは数値型の場合は数値を返し、文字列の場合は文字列型を返します。


返り値(数値型) SetAccountPropの場合
 SetAccountPropの場合は、値の書き換えに成功した場合は1、失敗した場合は0を返します。ちなみに、「署名、テンプレート」以外の文字列型は、長さが79バイト以内でないとダメです。それ以上の長い文字列を指定するとエラーになります。また、フラグの所に0、1以外の値を書き込もうとすると、これもエラーになります。


テンプレート/署名についての補足説明
 szNewTemplateなどのテンプレート/署名関係の値は、少々特殊な動作をします。
 アカウント毎の設定でのテンプレートの設定が、「参照指定」となっている場合にGetAccountPropでテンプレート/署名内容を参照すると、「参照指定」となっている先のテンプレート/署名内容を返します。
 SetAccountPropでテンプレート/署名を書き換えると、たとえ元の設定が参照設定となっていても、「個別指定」に設定しなおされて、その個別指定の内容が書き換えられます。


アカウントグループ名についての補足
 アカウントグループ名はGetAccountPropする分には普通に使えますが、SetAccountPropについては今のところ正常動作しません(V3.07β21時点で)。


#n = dllfunc("LoadAccountProp", "テストアカウント" );
#fSavePassword = dllfunc("GetAccountProp", "fSavePassword");
$name = dllfuncstr("GetAccountProp", "szName");
#n = dllfunc("SetAccountProp", "fSavePassword", 0);
#n = dllfunc("SetAccountProp", "szBccEmail", "hoge@fuga.com");
#n = dllfunc("SaveAccountProp");

動作確認マクロ
    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    #n = dllfunc("LoadAccountProp", $account);
    if( #n == 0 ) {
        message "エラー";
        endmacro;
    }

    $prop[0] = "szTitle";
    $prop[1] = "szName";
    $prop[2] = "szEmail";
    $prop[3] = "szReply";
    $prop[4] = "szSmtpServer";
    $prop[5] = "szPop3Server";
    $prop[6] = "szPop3Account";
    $prop[7] = "szDialupEntry";
    $prop[8] = "fSavePassword";
    $prop[9] = "fPopBeforeSmtp";
    $prop[10] = "fSaveOnServer";
    $prop[11] = "fDialup";
    $prop[12] = "fLeaveDialup";
    $prop[13] = "fRecvLog";
    $prop[14] = "fSendLog";
    $prop[15] = "fExcludeFromAllTransmit";
    $prop[16] = "fFilterAtRecv";
    $prop[17] = "fReplySignature";
    $prop[18] = "nLogRetainMonth";
    $prop[19] = "fApop";
    $prop[20] = "fFlyingRecv";
    $prop[21] = "cSaveOnServerDate";
    $prop[22] = "fExcludeFromAutoDown";
    $prop[23] = "fFilterAtSend";
    $prop[24] = "nAutoDownInterval";
    $prop[25] = "nPop3Port";
    $prop[26] = "nSmtpPort";
    $prop[27] = "szSmtpAccount";
    $prop[28] = "fSaveSmtpPassword";
    $prop[29] = "cPopLoginDelay";
    $prop[30] = "fESMTP";
    $prop[31] = "szAuthServer";
    $prop[32] = "fForwardSignature";
    $prop[33] = "fBccAlways";
    $prop[34] = "fDialupAtRecv";
    $prop[35] = "fDialupAtSend";
    $prop[36] = "fDontUseUidl";
    $prop[37] = "cServerTimeout";
    $prop[38] = "fDontChangeIconAtRecv";
    $prop[39] = "fDontUseTop";
    $prop[40] = "szOrganization";
    $prop[41] = "cbSizeLimit";
    $prop[42] = "fMailFromFrom";
    $prop[43] = "cbPartialSend";
    $prop[44] = "szBccEmail";
    $prop[45] = "nProjType";
    $prop[46] = "szAccountGroup";
    $prop[47] = "fPopOverSSL";
    $prop[48] = "fSmtpOverSSL";
    $prop[49] = "fSSLNoCertificateCheck";
    $prop[50] = "fPopOverSSLV3";
    $prop[51] = "fSmtpOverSSLV3";
    $prop[52] = "fPopStartTLS";
    $prop[53] = "fSmtpStartTLS";
    $prop[54] = "fNTLMAuth";
    $prop[55] = "fDontSpamFilter";
    $prop[56] = "szBookRelation";
    $prop[57] = "szRecvBypass";
    $prop[58] = "fSentBypass";
    $prop[59] = "fIgnoreRecvError";
    $prop[60] = "fRemoteMailAtAutoDown";
    $prop[61] = "szMailFromSpecify";
    $prop[62] = "szHeloHost";
    $prop[63] = "fHeloHost";
    $prop[64] = "authtype";
    $prop[65] = "recvSrv";
    $prop[66] = "nAccountIcon";
    $prop[67] = "szSecondPop3Server";
    $prop[68] = "fNN2MThrough";
    $prop[69] = "fBccNoAttach";
    $prop[70] = "fCheckMailBoxLimit";
    $prop[71] = "fPreFilter";
    $prop[72] = "fCcAlways";
    $prop[73] = "fImapCRAMMD5";
    $prop[74] = "fImapAllFolder";
    $prop[75] = "fImapUnseen";
    $prop[76] = "fImapLeaveUnseen";
    $prop[77] = "fShowRemoteFolder";
    $prop[78] = "fImapInboxExclude";
    $prop[79] = "fAesEncrypt";
    $prop[80] = "fImapIdle";
    $prop[81] = "fDontGds";
    $prop[82] = "fRetryLogin";
    $prop[83] = "fCcNoForward";
    $prop[84] = "fCheckMailSize";
    $prop[85] = "fDownloadReverse";
    $prop[86] = "szCcEmail";
    $prop[87] = "nMailBoxLimitLowByte";
    $prop[88] = "nMailBoxLimitHighByte";
    $prop[89] = "nPreFilterSizeKB";
    $prop[90] = "fSSLVersionSpecify";
    $prop[91] = "fNotSSL20";
    $prop[92] = "fSSL30";
    $prop[93] = "fTLS10";
    $prop[94] = "fTLS11";
    $prop[95] = "fTLS12";
    $prop[96] = "fSecondName";
    $prop[97] = "fImapUploadSent";
    $prop[98] = "fThreadFilterRecv";
    $prop[99] = "fThreadFilterSend";
    $prop[100] = "fImapSyncSoon";
    $prop[101] = "fImapIdleSkipAutoDown";
    $prop[102] = "fOAuth";
    $prop[103] = "fImapCheckDuplication";
    $prop[104] = "fDontAutoCollapse";
    $prop[105] = "fImapSyncUnread";
    $prop[106] = "fImapRetrieveSlow";
    $prop[107] = "fRetryLoginEver";
    $prop[108] = "fImapNotSyncFolderNotShow";
    $prop[109] = "fDeleteReverseSyncLong";
    $prop[110] = "szImapSyncTrash";
    $prop[111] = "nSendableMailInMinute";
    $prop[112] = "szSecondName1";
    $prop[113] = "szImapUploadSentFolder";
    $prop[114] = "szImapSyncDraft";
    $prop[115] = "fSaveUidlInMail";
    $prop[116] = "fDeleteRemoteSync";
    $prop[117] = "fDeleteRemoteSyncTrash";
    $prop[118] = "fImapSync";
    $prop[119] = "fImapSyncMoveCopy";
    $prop[120] = "fImapSyncTrash";
    $prop[121] = "fDeleteReverseSync";
    $prop[122] = "fImapSyncDontDeleteFolder";
    $prop[123] = "fImapSyncDraft";


Restart:
    #i = 0;
    while( $prop[#i] != "" ) {
        $param = $prop[#i];
        if( leftstr( $param, 2 ) == "sz" ) {
            $value[#i] = dllfuncstr("GetAccountProp", $param);
        } else {
            $value[#i] = str(dllfunc("GetAccountProp", $param));
        }
        $menu[#i] = $prop[#i] + " = " + $value[#i];
        #i = #i + 1;
    }
    menuarray $menu, 124;
    if( result == 0 ) {
        endmacro;
    }
    #i = result - 1;
    $new = input( $prop[#i], $value[#i]);
    if( result ) {
        $param = $prop[#i];
        if( leftstr( $param, 2 ) == "sz" ) {
            #n = dllfunc("SetAccountProp", $param, $new);
        } else {
            #new = val($new);
            #n = dllfunc("SetAccountProp", $param, #new);
        }
        if( #n == 0 ) {
            message "SetAccountPropに失敗しました。";
        } else {
            #n = dllfunc("SaveAccountProp");
            #n = dllfunc("LoadAccountProp", $account);
            if( #n == 0 ) {
                message "エラー";
                endmacro;
            }
        }
    }
    goto Restart;

戻る