from django.core.mail import EmailMessage, EmailMultiAlternatives from django.urls import reverse from django.template.loader import render_to_string from django.utils.translation import gettext_lazy as _ def send_offer_email(request, offer, sender_user, recipient_user): html_content = render_to_string('user/trade/offer_email.html', {'request': request, 'offer': offer, 'sender_user': sender_user, 'recipient_user': recipient_user}) plain_text = get_offer_text(request, offer, sender_user, recipient_user) message = EmailMultiAlternatives( f'{sender_user.username} {_("wants to trade")}', plain_text, 'no-reply@pflaenz.li', [recipient_user.email], reply_to=[sender_user.email], ) message.attach_alternative(html_content, 'text/html') message.send() def get_offer_text(request, offer, sender_user, recipient_user): return f"{_('Hello')} {recipient_user.username},\n\n{sender_user.username} {_('is interested in')} {offer.title}!\n\n{_('Checkout their offers')}: {request.scheme}://{request.get_host()}{reverse('user_detail', args=[sender_user.id])}\n\n{_('Contact')} {sender_user.username}, {_('by replying to this mail')}."