Fix email attachment collisions causing email send failure #312
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Unclaimed email attachments are currently not deleted if the email is deleted.
This is because email attachments are not formally related to emails in the DB with the current schema, so there's no way to
ON DELETE CASCADEthem.Since email message indices are reused, the orphaned attachments can overlap with attachments in new emails, preventing them from being sent due to the
UNIQUEconstraint in the attachment table failing.We don't want to change the schema, but we can fix this entirely in code, which is what this PR does.
For prevention: delete all email attachments when an email is deleted
For remediation: when the DB error is hit, attempt to delete the attachments from the deleted email, then try sending again
There was also a bad semicolon in one of the SQL queries which I think can cause some issues with attachment claiming; that has been fixed too.