Where are checksums stored in the database? Is there any considerations to the limitations of how many checksums can be created at once in a mailing? If I send a checksum email to ~250,000 will that work without issue?
The checksum is an md5 hash of the value in the database field
civicrm_contact.hash, the Contact ID, the current timestamp and the life-span.
Therefore, as long as the contact hash stays the same (it never changes, unless you do it manually), then you can generate as many tokens as necessary.
Once generated, checksums look like
xxxx_yyyy_zzzz. The first part is the md5 hash, the second part is the timestamp of when it was generated, and the third part is the life-span. That way CiviCRM can easily lookup the contact.hash, and with the
zzzz, be able to recalculate/validate the
For reference, see
CRM/Contact/BAO/Contact/Utils.php, the function