handle case where contact is concurrently created
This commit is contained in:
parent
6a8c0d6f76
commit
0c9106717b
|
@ -241,15 +241,20 @@ def replace_header_when_forward(msg: Message, alias: Alias, header: str):
|
||||||
|
|
||||||
reply_email = generate_reply_email()
|
reply_email = generate_reply_email()
|
||||||
|
|
||||||
contact = Contact.create(
|
try:
|
||||||
user_id=alias.user_id,
|
contact = Contact.create(
|
||||||
alias_id=alias.id,
|
user_id=alias.user_id,
|
||||||
website_email=contact_email,
|
alias_id=alias.id,
|
||||||
name=contact_name,
|
website_email=contact_email,
|
||||||
reply_email=reply_email,
|
name=contact_name,
|
||||||
is_cc=header.lower() == "cc",
|
reply_email=reply_email,
|
||||||
)
|
is_cc=header.lower() == "cc",
|
||||||
db.session.commit()
|
)
|
||||||
|
db.session.commit()
|
||||||
|
except IntegrityError:
|
||||||
|
LOG.warning("Contact %s %s already exist", alias, contact_email)
|
||||||
|
db.session.rollback()
|
||||||
|
contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)
|
||||||
|
|
||||||
new_addrs.append(contact.new_addr())
|
new_addrs.append(contact.new_addr())
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue