Added in VPOP3 Enterprise v9.1
This allows some messages to be stored in an external message store somewhere, accessed via S3, SFTP or similar
function DownloadFromExternal(MsgDataId, ExtData, TargetFileName)
returns <success>, <new ExtData or Error Text>
function GetMessagesToMoveToExternal()
returns <table of MsgDataIDs>
function UploadToExternal(MsgDataId, SourceFileName)
returns <success>, <new ExtData or Error Text>
function DeleteFromExternal(MsgDataId)
returns <success>, <new ExtData or Error Text>
function GetMessagesToMoveFromExternal()
returns <table of MsgDataIDs>
function GetTidyLocalHours(MaxAgeHours, MaxTidyCount)
returns MaxAgeHours, MaxTidyCount
Tells VPOP3 how long locally cached message files should be kept, and how many should be deleted per iteration around the management loop
function GetNextIterationDelay(ActionResults, Delay)
returns <new delay in milliseconds>
url = "https://s3.eu-central-1.wasabisys.com"; bucket = "<bucket name>"; accesskey = "<access key>"; secretkey = "<secret key>"; prefix = "extstore/"; function GetMessagesToMoveToExternal() local x = VPOP3.PostgresQuery("SELECT msgdataid FROM messages.msgdata WHERE NOT extmsg ORDER by msgdataid limit 1;") if x.Rows > 0 then return {x[1]["msgdataid"]} else return {} end end function DownloadFromExternal(msgid, data, filename) ret,retstr = VPOP3Net.S3Get(url, bucket, accesskey, secretkey, prefix .. msgid, filename); if ret == 0 then return true, data else return false, retstr end end function UploadToExternal(msgid, filename) ret,retstr = VPOP3Net.S3Put(url, bucket, accesskey, secretkey, prefix .. msgid, filename); if ret == 0 then return true, "abc" else return false, retstr end end function DeleteFromExternal(msgid) ret,retstr = VPOP3Net.S3Delete(url, bucket, accesskey, secretkey, prefix .. msgid); if ret == 0 then return true, "abc" else return false, retstr end end function GetTidyLocalHours(h, c) return 5, 1 end function GetNextIterationDelay(r, d) return 10000; end