User Tools

Site Tools


reference:external_message_store_script

This is an old revision of the document!


External Message Store Scripting

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

Example

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
reference/external_message_store_script.1778767606.txt.gz · Last modified: by paul