Page 1 of 1

Any documentation on decoding/deciphering unique URL string?

PostPosted: 7:10pm, Tue 07 Apr, 2015
by ScoobyDont
Could someone please point me to documentation regarding how the unique click URLs are constructed and how to decode them? I have looked high and low and I can't seem to find information that explains how this process works.

I would like to see which users are accessing our web server via the access log entries like this...
/lists/lt.php?id=f1xWAw0OElYfDgMxVgFTAQ9Q (I have changed the value for posting here because I have no idea what information is in the string)

Any help, pointers...etc. would be greatly appreciated.

Re: Any documentation on decoding/deciphering unique URL str

PostPosted: 9:42am, Wed 08 Apr, 2015
by duncanc
I don't think that it is explicitly documented because the value is not intended to be decoded by a person.

Look in your phplist database config table for the value of xormask, then

  • urldecode the id parameter in the URL
  • base64 decode the result
  • xor that with xormask
This should give a string similar to
Code: Select all

  • 1234 is the id of a row in the linktrack_forward table that gives the target url
  • 456 is the message id
  • 789 is the subscriber id
the first character can be H or T depending on whether the email was sent in html or text format.

But I am not sure that this is really worth doing as phplist provides statistics on which links have been clicked by which subscribers.

Re: Any documentation on decoding/deciphering unique URL str

PostPosted: 6:09pm, Thu 09 Apr, 2015
by ScoobyDont
Thanks Duncan,

Perhaps, as you suggest, I am looking at it from the wrong side...

My ultimate goal is to get a somewhat real-time notification of who has clicked a on a link in an email and which link(s) they clicked. I see that phplist can provide statistics and one can see activity for each user by drilling down on the user, but I didn't see any sort of facility for "recent activity" per se.

I saw the unique URLs in the log and figured if I could decode them and query the database, I could stream them in near real time and get more meaningful data (i.e.: Bob Smith is probably interested in buying shovels because he just clicked on the "shovel" link in the email)

Any thoughts/pointers on how to get this information directly from the database?