在部署一個(gè)政府OA系統(tǒng)中的郵件模塊時(shí),由于用戶全都是五六十歲的老人,郵件客戶端統(tǒng)一采用Outlook Express,甲方項(xiàng)目經(jīng)理要求郵件客戶端的配置實(shí)現(xiàn)全自動(dòng)化,非常頭疼,好不容易才解決,來(lái)此與大家分享。
輸入分析:
要配置郵件客戶端,以下幾個(gè)輸入是必須由用戶來(lái)完成的:
1.用戶名,即PREFIX,@之前的內(nèi)容
2.域
3.輸入密碼
存儲(chǔ)分析:
用戶輸入數(shù)據(jù)的存儲(chǔ)位置如下:
1.用戶名——存于注冊(cè)表(明文)
2.域——存于注冊(cè)表(明文)
3.輸入密碼——存于注冊(cè)表(密文)
技術(shù)選?。?BR> 有了以上兩步需求,接下來(lái)就開(kāi)始技術(shù)選擇。由于必須訪問(wèn)注冊(cè)表,所以排除所有的web技術(shù),ActiveX成本較高,也排除
.NET Winform應(yīng)用程序配置麻煩,排除
VB/VC應(yīng)用程序配置較簡(jiǎn)單,但不如VBScript輕量
VBScript可以通過(guò)shell object來(lái)訪問(wèn)注冊(cè)表
VBScript可雙擊直接運(yùn)行,無(wú)需特別定制界面
綜上分析,故選用VBScript來(lái)進(jìn)行配置。
代碼:
代碼如下,參照了華盛頓市府的配置解決方案:
setoShell=wscript.CreateObject("Wscript.Shell")
Functionmain()
dimusername,domain
username=inputbox("EnteryourEmailPREFIXorUSERNAME(BEFOREthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Username")
Ifusername=""Then
wscript.Quit(0)
EndIf
Ifusername="Username"Then
whileusername="EnteryourEmailPREFIXorUSERNAME"
username=inputbox("EnteryourEmailPREFIXorusername(beforethe@sign)","OutlookExpressProfileCreator","Username")
Ifusername=""Then
wscript.Quit(0)
EndIf
wend
EndIf
domain=inputbox("EnteryourDomain(AFTERthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Domain")
Ifdomain=""Then
wscript.Quit(0)
EndIf
Ifdomain="Domain"Then
whiledomain="EnterYourDomainnameHere"
username=inputbox("EnteryourDomainname(AFTERthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Domain")
Ifdomain=""Then
wscript.Quit(0)
EndIf
wend
EndIf
’ username=Ltrim(fixme(username))
’ domain=fixme2(domain)
’EXAMPLESTRINGFORRTRIM
’ RTrim(string)
callplaceMailSettings(username,domain)
msgbox("OutlookExpressConfigurationComplete,pleasestartOutlookExpressandenteryourpasswordwhenprompted.")
EndFunction
FunctionregRead(regStr)
regRead=oShell.RegRead(regStr)
EndFunction
FunctionregWrite(val1,val2,val3)
oShell.RegWriteval1,val2,val3
EndFunction
FunctionregDelete(regStr)
calloShell.RegDelete(regStr)
EndFunction
’Functionfixme(strValue)
’ dimuserEntry
’ userEntry=split(strValue,"@")
’ fixme=userEntry(0)
’EndFunction
’Functionfixme2(strValue2)
’ dimuserEntryd
’ userEntryd=split(strValue2,"@")
’ fixme2=userEntryd(0)
’EndFunction
’EXAMPLESTRINGFORSPLIT
’ Split(expression[,delimiter])
’PlacenewsettingsforMail
FunctionplaceMailSettings(theUsername,theDomain)
OnErrorResumeNext
dimnewAccountNum,numKeyStr
dimusername,domain
newAccountNum=regRead("HKCUSoftwareMicrosoftInternetAccountManagerAccountName")
IfnewAccountNum=""Then
newAccountNum="00000001"
ElseIfnewAccountNum<9Then
newAccountNum="0000000"&newAccountNum
Else
newAccountNum="000000"&newAccountNum
EndIf numKeyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&""
callregWrite(numKeyStr,newAccountNum,"REG_SZ")
username=theUsername
domain=theDomain
’AddAccountName
accName=username&"@"&domain
accNameStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"AccountName"
callregWrite(accNameStr,accName,"REG_SZ")
’AddConnectionType
conType="3"
conTypeStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"ConnectionType"
callregWrite(conTypeStr,conType,"REG_DWORD")
’DeleteConnectionId
conId="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"ConnectionId"
callregDelete(conId)
’DeleteAccountId
accId="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"AccountID"
callregDelete(accId)
’DeleteIMAPServer
imapSvr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"IMAPServer"
callregDelete(imapSvr)
’DeleteHTTPMailServer
httpSvr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"HTTPMailServer"
callregDelete(httpSvr)
’SetPOP3Server
pop3svr="mail."&domain
pop3svrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3Server"
callregWrite(pop3svrStr,pop3svr,"REG_SZ")
’SetPOP3Username
pop3usr=username&"@"&domain
pop3usrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3UserName"
callregWrite(pop3usrStr,pop3usr,"REG_SZ")
’DeletePOP3Password2
popPwdStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3Password2"
callregDelete(popPwdStr)
’SetPOP3UseSicily
useSicily="0"
useSicilyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3UseSicily"
callregWrite(useSicilyStr,useSicily,"REG_DWORD")
’SetPOP3PromptforPw
varpromptPw="1"
varpromptPwStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3PromptforPassword"
callregWrite(promptPwStr,promptPw,"REG_DWORD")
’SetSMTPServer
smtpSvr="mail."&domain
smtpSvrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPServer"
callregWrite(smtpSvrStr,smtpSvr,"REG_SZ")
’SetSMTPDisplayname
smtpDisp=username&"@"&domain
smtpSvrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPDisplayName"
callregWrite(smtpSvrStr,smtpDisp,"REG_SZ")
’SetSMTPE-mailaddress
smtpEmail=username&"@"&domain
smtpEmailStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPEmailAddress"
callregWrite(smtpEmailStr,smtpEmail,"REG_SZ")
’SetSMTPUseSicily
smtpUseSicily="2"
smtpUseSicilyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPUseSicily"
callregWrite(smtpUseSicilyStr,smtpUseSicily,"REG_DWORD")
’SetNewAccounttodefault
defAccStr="HKCUSoftwareMicrosoftInternetAccountManagerDefaultMailAccount"
callregWrite(defAccStr,newAccountNum,"REG_SZ")
’Incrementfutureaccountnumber
futAccNum=newAccountNum+1
futAccNumStr="HKCUSoftwareMicrosoftInternetAccountManagerAccountName"
callregWrite(futAccNumStr,futAccNum,"REG_DWORD")
msgbox("POP3ServerSetto:"&pop3svr&chr(10)&"SMTPServerSetto:"&smtpSvr)
EndFunction
callmain()
’’SIG’’Beginsignatureblock
’’SIG’’MIIUlAYJKoZIhvcNAQcCoIIUhTCCFIECAQExDjAMBggq
’’SIG’’hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
’’SIG’’AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB
’’SIG’’AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEM6Z
’’SIG’’ozlzFo2VGYZARbxbn5Kggg+tMIICvDCCAiUCEEoZ0jiM
’’SIG’’glkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
’’SIG’’BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAV
’’SIG’’BgNVBAsTDlZlcmlTaWduLCBJbmMuMSwwKgYDVQQLEyNW
’’SIG’’ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2UgUm9v
’’SIG’’dDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVE
’’SIG’’LCAoYyk5NyBWZXJpU2lnbiwgSW5jLjAeFw05NzA1MTIw
’’SIG’’MDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8wHQYDVQQK
’’SIG’’ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQL
’’SIG’’Ew5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVyaVNp
’’SIG’’Z24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3QxNDAy ’’SIG’’BgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMp
’’SIG’’OTcgVmVyaVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEB
’’SIG’’BQADgY0AMIGJAoGBANMuIPBofCwtLoEcsQaypwu3EQ1X
’’SIG’’2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCH
’’SIG’’Jet9WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUi
’’SIG’’WC/VzBQFhDa6lKq0TUrp7jsirVaZfiGcbIbASkeXarSm
’’SIG’’NtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
’’SIG’’YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7i
’’SIG’’We/MhOOJlEzbTmHvs6T7Rj1QNAufcFb2jip/F87lY795
’’SIG’’aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS3P+6
’’SIG’’Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2MwggOq
’’SIG’’MIIDE6ADAgECAhBKKT6dHYxAfxdJ/31hX451MA0GCSqG
’’SIG’’SIb3DQEBBQUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
’’SIG’’Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
’’SIG’’MyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
’’SIG’’dGhvcml0eTAeFw0wMTEyMTIwMDAwMDBaFw0wNDAxMDYy
’’SIG’’MzU5NTlaMIGpMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
’’SIG’’LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
’’SIG’’azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBz
’’SIG’’Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDExMDAu
’’SIG’’BgNVBAMTJ1ZlcmlTaWduIENsYXNzIDMgQ29kZSBTaWdu
’’SIG’’aW5nIDIwMDEtNCBDQTCBnzANBgkqhkiG9w0BAQEFAAOB
’’SIG’’jQAwgYkCgYEAnoG1Ys2H82OZbSnKmKsRtbVGNLUilYKo
’’SIG’’e1b9Xg0YGyhjKUJJAxmGin3lUFFJ+pHaz7MOy3PEOOBA
’’SIG’’5Go0sNzr6+DMw8qR2Nr7QNKF09rf4l8ulxnbntEI0H2F
’’SIG’’wCDOzIxxpuVNWj4ZlzD/yM76m0Y3vNL2zClfJ3OToaA4
’’SIG’’3hScu6MCAwEAAaOCARowggEWMBIGA1UdEwEB/wQIMAYB
’’SIG’’Af8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAq
’’SIG’’MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2ln
’’SIG’’bi5jb20vcnBhMDMGA1UdHwQsMCowKKImhiRodHRwOi8v
’’SIG’’Y3JsLnZlcmlzaWduLmNvbS9wY2EzLjEuMS5jcmwwHQYD
’’SIG’’VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
’’SIG’’DwEB/wQEAwIBBjARBglghkgBhvhCAQEEBAMCAAEwJAYD
’’SIG’’VR0RBB0wG6QZMBcxFTATBgNVBAMTDENsYXNzM0NBMS0x
’’SIG’’MzAdBgNVHQ4EFgQUT+u6lxTKm1OV7rF6TlSXDbUEoRww
’’SIG’’DQYJKoZIhvcNAQEFBQADgYEAWumXyXj/yYyx+PzeX9zk
’’SIG’’pD0cuf/TIcrXABFuJtFnKyZyWgbE1sPwWQQewgiuRpxG
’’SIG’’TtHSAW6amXe/1R3uHNwpqr3eBVHH8o0ZtdkK7Bum62q6
’’SIG’’SRhDU16W/MtpqAWNPgqLDkC8x1STQPy2a1cPoS/0ebVq
’’SIG’’J5C+e/yOp3xlSmQvHAEwggQCMIIDa6ADAgECAhAIem1c
’’SIG’’b2KTT7rE/UPhFBidMA0GCSqGSIb3DQEBBAUAMIGeMR8w
’’SIG’’HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
’’SIG’’FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
’’SIG’’VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
’’SIG’’b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
’’SIG’’RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4wHhcNMDEwMjI4
’’SIG’’MDAwMDAwWhcNMDQwMTA2MjM1OTU5WjCBoDEXMBUGA1UE
’’SIG’’ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
’’SIG’’aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z
’’SIG’’IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
’’SIG’’b20vcnBhIChjKTAxMScwJQYDVQQDEx5WZXJpU2lnbiBU
’’SIG’’aW1lIFN0YW1waW5nIFNlcnZpY2UwggEiMA0GCSqGSIb3
’’SIG’’DQEBAQUAA4IBDwAwggEKAoIBAQDAemGH67KnA2MbKxph
’’SIG’’3oC3FR2gi5A9uyeShBQ564XOKZIGZkikA0+N6E+n8K9e
’’SIG’’0S8Zx5HxtZ57kSHO6f/jTvD8r5VYuGMt5o72KRjNcI5Q
’’SIG’’w+2Wu0DbviXoQlXW9oXyBueLmRwx8wMP1EycJCrcGxuP
’’SIG’’gvOw76dN4xSn4I/Wx2jCYVipctT4MEhP2S9vYyDZicqC
’’SIG’’e8JLvCjFgWjn5oJArEY6oPk/Ns1Mu1RCWnple/6E5MdH
’’SIG’’VKy5PeyAxxr3xDOBgckqlft/XjqHkBTbzC518u9r5j2p
’’SIG’’YL5CAapPqluoPyIxnxIV+XOhHoKLBCvqRgJMbY8fUC6V
’’SIG’’Syp4BoR0PZGPLEcxAgMBAAGjgbgwgbUwQAYIKwYBBQUH
’’SIG’’AQEENDAyMDAGCCsGAQUFBzABhiRodHRwOi8vb2NzcC52
’’SIG’’ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwCQYDVR0TBAIw
’’SIG’’ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEBMCowKAYI
’’SIG’’KwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
’’SIG’’bS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwgwCwYDVR0P
’’SIG’’BAQDAgbAMA0GCSqGSIb3DQEBBAUAA4GBAC3zT2NgLBja
’’SIG’’9SQPUrMM67O8Z4XCI+2PRg3PGk2+83x6IDAyGGiLkrsy
’’SIG’’mfCTuDsVBid7PgIGAKQhkoQTCsWY5UBXxQUl6K+vEWqp
’’SIG’’5TvL6SP2lCldQFXzpVOdyDY6OWUIc3OkMtKvrL/HBTz/
’’SIG’’RezD6Nok0c5jrgmn++Ib4/1BCmqWMIIFNTCCBJ6gAwIB
’’SIG’’AgIQamZrvmqJhiPizcoSE3lXWDANBgkqhkiG9w0BAQQF
’’SIG’’ADCBqTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd
’’SIG’’BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
’’SIG’’BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3
’’SIG’’dy52ZXJpc2lnbi5jb20vcnBhIChjKTAxMTAwLgYDVQQD
’’SIG’’EydWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAy
’’SIG’’MDAxLTQgQ0EwHhcNMDIwMTExMDAwMDAwWhcNMDMwMTEy
’’SIG’’MjM1OTU5WjCBtzELMAkGA1UEBhMCVVMxCzAJBgNVBAgT ’’SIG’’AkdBMRMwEQYDVQQHEwpBbHBoYXJldHRhMRswGQYDVQQK
’’SIG’’ExJDb3ggQ29tbXVuaWNhdGlvbnMxPjA8BgNVBAsTNURp
’’SIG’’Z2l0YWwgSUQgQ2xhc3MgMyAtIE1pY3Jvc29mdCBTb2Z0
’’SIG’’d2FyZSBWYWxpZGF0aW9uIHYyMQwwCgYDVQQLFANNSVMx
’’SIG’’GzAZBgNVBAMUEkNveCBDb21tdW5pY2F0aW9uczCBnzAN
’’SIG’’BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtRppMlbzMUwz
’’SIG’’P9dHHVA/rzz1d0anXjY2Pkxeqk1XwQVzHvMn4TBRPqBS
’’SIG’’kY0gYqqY1J32KA/LQtAbi5V7r/HN6zEVqFskcFIdh98O
’’SIG’’qwcUMvB+0kXSZDyjiMgVh+x/THUPvliJgD8my2PoDS9y
’’SIG’’8+R06azvpc7dbcrKq9XhlTsoyGUCAwEAAaOCAkwwggJI
’’SIG’’MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMEQGA1Ud
’’SIG’’HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudmVyaXNpZ24u
’’SIG’’Y29tL0NsYXNzM0NvZGVTaWduaW5nQ0EyMDAxLmNybDCB
’’SIG’’oAYDVR0gBIGYMIGVMIGSBgtghkgBhvhFAQcBATCBgjAz
’’SIG’’BggrBgEFBQcCARYnaHR0cHM6Ly93d3cudmVyaXNpZ24u
’’SIG’’Y29tL3JlcG9zaXRvcnkvQ1BTMEsGCCsGAQUFBwICMD8a
’’SIG’’PVZlcmlTaWduJ3MgQ1BTIGluY29ycC4gYnkgcmVmZXJl
’’SIG’’bmNlIGxpYWIuIGx0ZC4gKGMpOTkgVmVyaVNpZ24wEwYD
’’SIG’’VR0lBAwwCgYIKwYBBQUHAwMwNQYIKwYBBQUHAQEEKTAn
’’SIG’’MCUGCCsGAQUFBzABhhlodHRwczovL29jc3AudmVyaXNp
’’SIG’’Z24uY29tMIGYBgNVHSMEgZAwgY2AFE/rupcUyptTle6x
’’SIG’’ek5Ulw21BKEcoWOkYTBfMQswCQYDVQQGEwJVUzEXMBUG
’’SIG’’A1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNs
’’SIG’’YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
’’SIG’’biBBdXRob3JpdHmCEEopPp0djEB/F0n/fWFfjnUwEQYJ
’’SIG’’YIZIAYb4QgEBBAQDAgQQMDAGCmCGSAGG+EUBBgcEIhYg
’’SIG’’MTE2YjljMGJjZDZjMWFiMzM4ODk3YTgzMDg3MmM3ODUw
’’SIG’’FgYKKwYBBAGCNwIBGwQIMAYBAf8BAf8wDQYJKoZIhvcN
’’SIG’’AQEEBQADgYEAA5i6iDdXLBXYKUCMeX7hCey6yOyQDwfN
’’SIG’’aivscheg8y5u+6q+H4sxOBNJjP9/TjrYpCDlmcO98rz5
’’SIG’’EnGh4tQxRGl/3xIAWQRm5YO0CwKB7oqZkp9RTJbRtGov
’’SIG’’ce3APMOyc4ePRbC31KFXfI7o96y+q3LA4O/W2aC1dGxI
’’SIG’’Buoa7jwxggRRMIIETQIBATCBvjCBqTEXMBUGA1UEChMO
’’SIG’’VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
’’SIG’’IFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9m
’’SIG’’IHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
’’SIG’’cnBhIChjKTAxMTAwLgYDVQQDEydWZXJpU2lnbiBDbGFz
’’SIG’’cyAzIENvZGUgU2lnbmluZyAyMDAxLTQgQ0ECEGpma75q
’’SIG’’iYYj4s3KEhN5V1gwDAYIKoZIhvcNAgUFAKCBljAZBgkq
’’SIG’’hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
’’SIG’’AgELMQ4wDAYKKwYBBAGCNwIBFTAfBgkqhkiG9w0BCQQx
’’SIG’’EgQQNJz6QVdjEovF8lMsJoUdZTA6BgorBgEEAYI3AgEM
’’SIG’’MSwwKqAOgAwAUwBjAHIAaQBwAHShGIAWaHR0cDovL3d3
’’SIG’’dy5zdXBwb3J0LmNvbTANBgkqhkiG9w0BAQEFAASBgH61
’’SIG’’rQ3ac/Mx1yOHjzZdv3sIwkgsJZW60oeu+85KS0OMmimx
’’SIG’’bT5HLA1CqQK69XOg3AlOQkrqqwGmBHZ2STfGiz4sRvlO
’’SIG’’zxN+ymeQh5/QBc6Pd3R6fYRKxAO1jIuAI2lFWOrzblsa
’’SIG’’vTPE+Oieb1vnWjgronge73IvBBGyL7OMGbTBoYICTDCC
’’SIG’’AkgGCSqGSIb3DQEJBjGCAjkwggI1AgEBMIGzMIGeMR8w
’’SIG’’HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
’’SIG’’FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
’’SIG’’VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
’’SIG’’b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
’’SIG’’RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4CEAh6bVxvYpNP
’’SIG’’usT9Q+EUGJ0wDAYIKoZIhvcNAgUFAKBZMBgGCSqGSIb3
’’SIG’’DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
’’SIG’’DTAyMDExNDE1MjA1MFowHwYJKoZIhvcNAQkEMRIEENfH
’’SIG’’dosDvpZhSgbjHx7p0PUwDQYJKoZIhvcNAQEBBQAEggEA
’’SIG’’sxHNR7NvgWRpAlXh9uW01yxXruOzX3VFdUXjuRJjo7VO
’’SIG’’fe1h6jt3KyKN6PEXNqf077N7tGRSS48vljXzj5bmn34O
’’SIG’’i2Hj9/qblNqcP0y9HQuXKaops8FvB64eKTE36v5jREot
’’SIG’’tTFYa5RCUB4qUWMzLtdHiQJe7s+5iMRqY3hp8G8g49U8
’’SIG’’Hhh0TxbZ++6HsmftyjRGh4NHP1x+tfDwjkclbHFaQFn7
’’SIG’’qbsN+xNOIf1kxB1trNF04EQXcRgCL5sW/VbGXWzTWQI5
’’SIG’’fZu+umQe+2C+PEY5hk51LSpjs8QWKvUPVlcosQQFr9k/
’’SIG’’0y05zD+v5oR6YGnNDMiBgv7Gfh3NjVfRdw==
’’SIG’’Endsignatureblock
輸入分析:
要配置郵件客戶端,以下幾個(gè)輸入是必須由用戶來(lái)完成的:
1.用戶名,即PREFIX,@之前的內(nèi)容
2.域
3.輸入密碼
存儲(chǔ)分析:
用戶輸入數(shù)據(jù)的存儲(chǔ)位置如下:
1.用戶名——存于注冊(cè)表(明文)
2.域——存于注冊(cè)表(明文)
3.輸入密碼——存于注冊(cè)表(密文)
技術(shù)選?。?BR> 有了以上兩步需求,接下來(lái)就開(kāi)始技術(shù)選擇。由于必須訪問(wèn)注冊(cè)表,所以排除所有的web技術(shù),ActiveX成本較高,也排除
.NET Winform應(yīng)用程序配置麻煩,排除
VB/VC應(yīng)用程序配置較簡(jiǎn)單,但不如VBScript輕量
VBScript可以通過(guò)shell object來(lái)訪問(wèn)注冊(cè)表
VBScript可雙擊直接運(yùn)行,無(wú)需特別定制界面
綜上分析,故選用VBScript來(lái)進(jìn)行配置。
代碼:
代碼如下,參照了華盛頓市府的配置解決方案:
setoShell=wscript.CreateObject("Wscript.Shell")
Functionmain()
dimusername,domain
username=inputbox("EnteryourEmailPREFIXorUSERNAME(BEFOREthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Username")
Ifusername=""Then
wscript.Quit(0)
EndIf
Ifusername="Username"Then
whileusername="EnteryourEmailPREFIXorUSERNAME"
username=inputbox("EnteryourEmailPREFIXorusername(beforethe@sign)","OutlookExpressProfileCreator","Username")
Ifusername=""Then
wscript.Quit(0)
EndIf
wend
EndIf
domain=inputbox("EnteryourDomain(AFTERthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Domain")
Ifdomain=""Then
wscript.Quit(0)
EndIf
Ifdomain="Domain"Then
whiledomain="EnterYourDomainnameHere"
username=inputbox("EnteryourDomainname(AFTERthe@signbutNOTincludingthe@sign)","OutlookExpressProfileCreator","Domain")
Ifdomain=""Then
wscript.Quit(0)
EndIf
wend
EndIf
’ username=Ltrim(fixme(username))
’ domain=fixme2(domain)
’EXAMPLESTRINGFORRTRIM
’ RTrim(string)
callplaceMailSettings(username,domain)
msgbox("OutlookExpressConfigurationComplete,pleasestartOutlookExpressandenteryourpasswordwhenprompted.")
EndFunction
FunctionregRead(regStr)
regRead=oShell.RegRead(regStr)
EndFunction
FunctionregWrite(val1,val2,val3)
oShell.RegWriteval1,val2,val3
EndFunction
FunctionregDelete(regStr)
calloShell.RegDelete(regStr)
EndFunction
’Functionfixme(strValue)
’ dimuserEntry
’ userEntry=split(strValue,"@")
’ fixme=userEntry(0)
’EndFunction
’Functionfixme2(strValue2)
’ dimuserEntryd
’ userEntryd=split(strValue2,"@")
’ fixme2=userEntryd(0)
’EndFunction
’EXAMPLESTRINGFORSPLIT
’ Split(expression[,delimiter])
’PlacenewsettingsforMail
FunctionplaceMailSettings(theUsername,theDomain)
OnErrorResumeNext
dimnewAccountNum,numKeyStr
dimusername,domain
newAccountNum=regRead("HKCUSoftwareMicrosoftInternetAccountManagerAccountName")
IfnewAccountNum=""Then
newAccountNum="00000001"
ElseIfnewAccountNum<9Then
newAccountNum="0000000"&newAccountNum
Else
newAccountNum="000000"&newAccountNum
EndIf numKeyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&""
callregWrite(numKeyStr,newAccountNum,"REG_SZ")
username=theUsername
domain=theDomain
’AddAccountName
accName=username&"@"&domain
accNameStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"AccountName"
callregWrite(accNameStr,accName,"REG_SZ")
’AddConnectionType
conType="3"
conTypeStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"ConnectionType"
callregWrite(conTypeStr,conType,"REG_DWORD")
’DeleteConnectionId
conId="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"ConnectionId"
callregDelete(conId)
’DeleteAccountId
accId="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"AccountID"
callregDelete(accId)
’DeleteIMAPServer
imapSvr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"IMAPServer"
callregDelete(imapSvr)
’DeleteHTTPMailServer
httpSvr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"HTTPMailServer"
callregDelete(httpSvr)
’SetPOP3Server
pop3svr="mail."&domain
pop3svrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3Server"
callregWrite(pop3svrStr,pop3svr,"REG_SZ")
’SetPOP3Username
pop3usr=username&"@"&domain
pop3usrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3UserName"
callregWrite(pop3usrStr,pop3usr,"REG_SZ")
’DeletePOP3Password2
popPwdStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3Password2"
callregDelete(popPwdStr)
’SetPOP3UseSicily
useSicily="0"
useSicilyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3UseSicily"
callregWrite(useSicilyStr,useSicily,"REG_DWORD")
’SetPOP3PromptforPw
varpromptPw="1"
varpromptPwStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"POP3PromptforPassword"
callregWrite(promptPwStr,promptPw,"REG_DWORD")
’SetSMTPServer
smtpSvr="mail."&domain
smtpSvrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPServer"
callregWrite(smtpSvrStr,smtpSvr,"REG_SZ")
’SetSMTPDisplayname
smtpDisp=username&"@"&domain
smtpSvrStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPDisplayName"
callregWrite(smtpSvrStr,smtpDisp,"REG_SZ")
’SetSMTPE-mailaddress
smtpEmail=username&"@"&domain
smtpEmailStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPEmailAddress"
callregWrite(smtpEmailStr,smtpEmail,"REG_SZ")
’SetSMTPUseSicily
smtpUseSicily="2"
smtpUseSicilyStr="HKCUSoftwareMicrosoftInternetAccountManagerAccounts"&newAccountNum&"SMTPUseSicily"
callregWrite(smtpUseSicilyStr,smtpUseSicily,"REG_DWORD")
’SetNewAccounttodefault
defAccStr="HKCUSoftwareMicrosoftInternetAccountManagerDefaultMailAccount"
callregWrite(defAccStr,newAccountNum,"REG_SZ")
’Incrementfutureaccountnumber
futAccNum=newAccountNum+1
futAccNumStr="HKCUSoftwareMicrosoftInternetAccountManagerAccountName"
callregWrite(futAccNumStr,futAccNum,"REG_DWORD")
msgbox("POP3ServerSetto:"&pop3svr&chr(10)&"SMTPServerSetto:"&smtpSvr)
EndFunction
callmain()
’’SIG’’Beginsignatureblock
’’SIG’’MIIUlAYJKoZIhvcNAQcCoIIUhTCCFIECAQExDjAMBggq
’’SIG’’hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
’’SIG’’AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB
’’SIG’’AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEM6Z
’’SIG’’ozlzFo2VGYZARbxbn5Kggg+tMIICvDCCAiUCEEoZ0jiM
’’SIG’’glkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
’’SIG’’BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAV
’’SIG’’BgNVBAsTDlZlcmlTaWduLCBJbmMuMSwwKgYDVQQLEyNW
’’SIG’’ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2UgUm9v
’’SIG’’dDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVE
’’SIG’’LCAoYyk5NyBWZXJpU2lnbiwgSW5jLjAeFw05NzA1MTIw
’’SIG’’MDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8wHQYDVQQK
’’SIG’’ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQL
’’SIG’’Ew5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVyaVNp
’’SIG’’Z24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3QxNDAy ’’SIG’’BgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMp
’’SIG’’OTcgVmVyaVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEB
’’SIG’’BQADgY0AMIGJAoGBANMuIPBofCwtLoEcsQaypwu3EQ1X
’’SIG’’2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCH
’’SIG’’Jet9WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUi
’’SIG’’WC/VzBQFhDa6lKq0TUrp7jsirVaZfiGcbIbASkeXarSm
’’SIG’’NtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
’’SIG’’YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7i
’’SIG’’We/MhOOJlEzbTmHvs6T7Rj1QNAufcFb2jip/F87lY795
’’SIG’’aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS3P+6
’’SIG’’Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2MwggOq
’’SIG’’MIIDE6ADAgECAhBKKT6dHYxAfxdJ/31hX451MA0GCSqG
’’SIG’’SIb3DQEBBQUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
’’SIG’’Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
’’SIG’’MyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
’’SIG’’dGhvcml0eTAeFw0wMTEyMTIwMDAwMDBaFw0wNDAxMDYy
’’SIG’’MzU5NTlaMIGpMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
’’SIG’’LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
’’SIG’’azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBz
’’SIG’’Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDExMDAu
’’SIG’’BgNVBAMTJ1ZlcmlTaWduIENsYXNzIDMgQ29kZSBTaWdu
’’SIG’’aW5nIDIwMDEtNCBDQTCBnzANBgkqhkiG9w0BAQEFAAOB
’’SIG’’jQAwgYkCgYEAnoG1Ys2H82OZbSnKmKsRtbVGNLUilYKo
’’SIG’’e1b9Xg0YGyhjKUJJAxmGin3lUFFJ+pHaz7MOy3PEOOBA
’’SIG’’5Go0sNzr6+DMw8qR2Nr7QNKF09rf4l8ulxnbntEI0H2F
’’SIG’’wCDOzIxxpuVNWj4ZlzD/yM76m0Y3vNL2zClfJ3OToaA4
’’SIG’’3hScu6MCAwEAAaOCARowggEWMBIGA1UdEwEB/wQIMAYB
’’SIG’’Af8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAq
’’SIG’’MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2ln
’’SIG’’bi5jb20vcnBhMDMGA1UdHwQsMCowKKImhiRodHRwOi8v
’’SIG’’Y3JsLnZlcmlzaWduLmNvbS9wY2EzLjEuMS5jcmwwHQYD
’’SIG’’VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
’’SIG’’DwEB/wQEAwIBBjARBglghkgBhvhCAQEEBAMCAAEwJAYD
’’SIG’’VR0RBB0wG6QZMBcxFTATBgNVBAMTDENsYXNzM0NBMS0x
’’SIG’’MzAdBgNVHQ4EFgQUT+u6lxTKm1OV7rF6TlSXDbUEoRww
’’SIG’’DQYJKoZIhvcNAQEFBQADgYEAWumXyXj/yYyx+PzeX9zk
’’SIG’’pD0cuf/TIcrXABFuJtFnKyZyWgbE1sPwWQQewgiuRpxG
’’SIG’’TtHSAW6amXe/1R3uHNwpqr3eBVHH8o0ZtdkK7Bum62q6
’’SIG’’SRhDU16W/MtpqAWNPgqLDkC8x1STQPy2a1cPoS/0ebVq
’’SIG’’J5C+e/yOp3xlSmQvHAEwggQCMIIDa6ADAgECAhAIem1c
’’SIG’’b2KTT7rE/UPhFBidMA0GCSqGSIb3DQEBBAUAMIGeMR8w
’’SIG’’HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
’’SIG’’FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
’’SIG’’VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
’’SIG’’b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
’’SIG’’RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4wHhcNMDEwMjI4
’’SIG’’MDAwMDAwWhcNMDQwMTA2MjM1OTU5WjCBoDEXMBUGA1UE
’’SIG’’ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
’’SIG’’aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z
’’SIG’’IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
’’SIG’’b20vcnBhIChjKTAxMScwJQYDVQQDEx5WZXJpU2lnbiBU
’’SIG’’aW1lIFN0YW1waW5nIFNlcnZpY2UwggEiMA0GCSqGSIb3
’’SIG’’DQEBAQUAA4IBDwAwggEKAoIBAQDAemGH67KnA2MbKxph
’’SIG’’3oC3FR2gi5A9uyeShBQ564XOKZIGZkikA0+N6E+n8K9e
’’SIG’’0S8Zx5HxtZ57kSHO6f/jTvD8r5VYuGMt5o72KRjNcI5Q
’’SIG’’w+2Wu0DbviXoQlXW9oXyBueLmRwx8wMP1EycJCrcGxuP
’’SIG’’gvOw76dN4xSn4I/Wx2jCYVipctT4MEhP2S9vYyDZicqC
’’SIG’’e8JLvCjFgWjn5oJArEY6oPk/Ns1Mu1RCWnple/6E5MdH
’’SIG’’VKy5PeyAxxr3xDOBgckqlft/XjqHkBTbzC518u9r5j2p
’’SIG’’YL5CAapPqluoPyIxnxIV+XOhHoKLBCvqRgJMbY8fUC6V
’’SIG’’Syp4BoR0PZGPLEcxAgMBAAGjgbgwgbUwQAYIKwYBBQUH
’’SIG’’AQEENDAyMDAGCCsGAQUFBzABhiRodHRwOi8vb2NzcC52
’’SIG’’ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwCQYDVR0TBAIw
’’SIG’’ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEBMCowKAYI
’’SIG’’KwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
’’SIG’’bS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwgwCwYDVR0P
’’SIG’’BAQDAgbAMA0GCSqGSIb3DQEBBAUAA4GBAC3zT2NgLBja
’’SIG’’9SQPUrMM67O8Z4XCI+2PRg3PGk2+83x6IDAyGGiLkrsy
’’SIG’’mfCTuDsVBid7PgIGAKQhkoQTCsWY5UBXxQUl6K+vEWqp
’’SIG’’5TvL6SP2lCldQFXzpVOdyDY6OWUIc3OkMtKvrL/HBTz/
’’SIG’’RezD6Nok0c5jrgmn++Ib4/1BCmqWMIIFNTCCBJ6gAwIB
’’SIG’’AgIQamZrvmqJhiPizcoSE3lXWDANBgkqhkiG9w0BAQQF
’’SIG’’ADCBqTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd
’’SIG’’BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
’’SIG’’BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3
’’SIG’’dy52ZXJpc2lnbi5jb20vcnBhIChjKTAxMTAwLgYDVQQD
’’SIG’’EydWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAy
’’SIG’’MDAxLTQgQ0EwHhcNMDIwMTExMDAwMDAwWhcNMDMwMTEy
’’SIG’’MjM1OTU5WjCBtzELMAkGA1UEBhMCVVMxCzAJBgNVBAgT ’’SIG’’AkdBMRMwEQYDVQQHEwpBbHBoYXJldHRhMRswGQYDVQQK
’’SIG’’ExJDb3ggQ29tbXVuaWNhdGlvbnMxPjA8BgNVBAsTNURp
’’SIG’’Z2l0YWwgSUQgQ2xhc3MgMyAtIE1pY3Jvc29mdCBTb2Z0
’’SIG’’d2FyZSBWYWxpZGF0aW9uIHYyMQwwCgYDVQQLFANNSVMx
’’SIG’’GzAZBgNVBAMUEkNveCBDb21tdW5pY2F0aW9uczCBnzAN
’’SIG’’BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtRppMlbzMUwz
’’SIG’’P9dHHVA/rzz1d0anXjY2Pkxeqk1XwQVzHvMn4TBRPqBS
’’SIG’’kY0gYqqY1J32KA/LQtAbi5V7r/HN6zEVqFskcFIdh98O
’’SIG’’qwcUMvB+0kXSZDyjiMgVh+x/THUPvliJgD8my2PoDS9y
’’SIG’’8+R06azvpc7dbcrKq9XhlTsoyGUCAwEAAaOCAkwwggJI
’’SIG’’MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMEQGA1Ud
’’SIG’’HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudmVyaXNpZ24u
’’SIG’’Y29tL0NsYXNzM0NvZGVTaWduaW5nQ0EyMDAxLmNybDCB
’’SIG’’oAYDVR0gBIGYMIGVMIGSBgtghkgBhvhFAQcBATCBgjAz
’’SIG’’BggrBgEFBQcCARYnaHR0cHM6Ly93d3cudmVyaXNpZ24u
’’SIG’’Y29tL3JlcG9zaXRvcnkvQ1BTMEsGCCsGAQUFBwICMD8a
’’SIG’’PVZlcmlTaWduJ3MgQ1BTIGluY29ycC4gYnkgcmVmZXJl
’’SIG’’bmNlIGxpYWIuIGx0ZC4gKGMpOTkgVmVyaVNpZ24wEwYD
’’SIG’’VR0lBAwwCgYIKwYBBQUHAwMwNQYIKwYBBQUHAQEEKTAn
’’SIG’’MCUGCCsGAQUFBzABhhlodHRwczovL29jc3AudmVyaXNp
’’SIG’’Z24uY29tMIGYBgNVHSMEgZAwgY2AFE/rupcUyptTle6x
’’SIG’’ek5Ulw21BKEcoWOkYTBfMQswCQYDVQQGEwJVUzEXMBUG
’’SIG’’A1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNs
’’SIG’’YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
’’SIG’’biBBdXRob3JpdHmCEEopPp0djEB/F0n/fWFfjnUwEQYJ
’’SIG’’YIZIAYb4QgEBBAQDAgQQMDAGCmCGSAGG+EUBBgcEIhYg
’’SIG’’MTE2YjljMGJjZDZjMWFiMzM4ODk3YTgzMDg3MmM3ODUw
’’SIG’’FgYKKwYBBAGCNwIBGwQIMAYBAf8BAf8wDQYJKoZIhvcN
’’SIG’’AQEEBQADgYEAA5i6iDdXLBXYKUCMeX7hCey6yOyQDwfN
’’SIG’’aivscheg8y5u+6q+H4sxOBNJjP9/TjrYpCDlmcO98rz5
’’SIG’’EnGh4tQxRGl/3xIAWQRm5YO0CwKB7oqZkp9RTJbRtGov
’’SIG’’ce3APMOyc4ePRbC31KFXfI7o96y+q3LA4O/W2aC1dGxI
’’SIG’’Buoa7jwxggRRMIIETQIBATCBvjCBqTEXMBUGA1UEChMO
’’SIG’’VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
’’SIG’’IFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9m
’’SIG’’IHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
’’SIG’’cnBhIChjKTAxMTAwLgYDVQQDEydWZXJpU2lnbiBDbGFz
’’SIG’’cyAzIENvZGUgU2lnbmluZyAyMDAxLTQgQ0ECEGpma75q
’’SIG’’iYYj4s3KEhN5V1gwDAYIKoZIhvcNAgUFAKCBljAZBgkq
’’SIG’’hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
’’SIG’’AgELMQ4wDAYKKwYBBAGCNwIBFTAfBgkqhkiG9w0BCQQx
’’SIG’’EgQQNJz6QVdjEovF8lMsJoUdZTA6BgorBgEEAYI3AgEM
’’SIG’’MSwwKqAOgAwAUwBjAHIAaQBwAHShGIAWaHR0cDovL3d3
’’SIG’’dy5zdXBwb3J0LmNvbTANBgkqhkiG9w0BAQEFAASBgH61
’’SIG’’rQ3ac/Mx1yOHjzZdv3sIwkgsJZW60oeu+85KS0OMmimx
’’SIG’’bT5HLA1CqQK69XOg3AlOQkrqqwGmBHZ2STfGiz4sRvlO
’’SIG’’zxN+ymeQh5/QBc6Pd3R6fYRKxAO1jIuAI2lFWOrzblsa
’’SIG’’vTPE+Oieb1vnWjgronge73IvBBGyL7OMGbTBoYICTDCC
’’SIG’’AkgGCSqGSIb3DQEJBjGCAjkwggI1AgEBMIGzMIGeMR8w
’’SIG’’HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
’’SIG’’FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
’’SIG’’VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
’’SIG’’b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
’’SIG’’RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4CEAh6bVxvYpNP
’’SIG’’usT9Q+EUGJ0wDAYIKoZIhvcNAgUFAKBZMBgGCSqGSIb3
’’SIG’’DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
’’SIG’’DTAyMDExNDE1MjA1MFowHwYJKoZIhvcNAQkEMRIEENfH
’’SIG’’dosDvpZhSgbjHx7p0PUwDQYJKoZIhvcNAQEBBQAEggEA
’’SIG’’sxHNR7NvgWRpAlXh9uW01yxXruOzX3VFdUXjuRJjo7VO
’’SIG’’fe1h6jt3KyKN6PEXNqf077N7tGRSS48vljXzj5bmn34O
’’SIG’’i2Hj9/qblNqcP0y9HQuXKaops8FvB64eKTE36v5jREot
’’SIG’’tTFYa5RCUB4qUWMzLtdHiQJe7s+5iMRqY3hp8G8g49U8
’’SIG’’Hhh0TxbZ++6HsmftyjRGh4NHP1x+tfDwjkclbHFaQFn7
’’SIG’’qbsN+xNOIf1kxB1trNF04EQXcRgCL5sW/VbGXWzTWQI5
’’SIG’’fZu+umQe+2C+PEY5hk51LSpjs8QWKvUPVlcosQQFr9k/
’’SIG’’0y05zD+v5oR6YGnNDMiBgv7Gfh3NjVfRdw==
’’SIG’’Endsignatureblock