diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index 7237bd3b2..051888728 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -976,7 +976,7 @@ class Order(LockModel, LoggedModel): SendMailException, TolerantDict, mail, render_mail, ) - if not self.email: + if not self.email and not (position and position.attendee_email): return for k, v in self.event.meta_data.items(): @@ -1724,10 +1724,10 @@ class OrderPayment(models.Model): email_context = get_email_context(event=self.order.event, order=self.order, position=position) email_subject = _('Event registration confirmed: %(code)s') % {'code': self.order.code} try: - self.order.send_mail( + position.send_mail( email_subject, email_template, email_context, 'pretix.event.order.email.order_paid', user, - invoices=[], position=position, + invoices=[], attach_tickets=True, attach_ical=self.order.event.settings.mail_attach_ical ) diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 75cebf087..1828db3c9 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -955,12 +955,11 @@ def _order_placed_email_attendee(event: Event, order: Order, position: OrderPosi email_subject = _('Your event registration: %(code)s') % {'code': order.code} try: - order.send_mail( + position.send_mail( email_subject, email_template, email_context, log_entry, invoices=[], attach_tickets=True, - position=position, attach_ical=event.settings.mail_attach_ical and (not event.settings.mail_attach_ical_paid_only or is_free), attach_other_files=[a for a in [ event.settings.get('mail_attachment_new_order', as_type=str, default='')[len('file://'):]