fix E-Mail notifications
This commit is contained in:
44
arr_api/management/commands/send_test_email.py
Normal file
44
arr_api/management/commands/send_test_email.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.utils import timezone
|
||||
|
||||
from arr_api.notifications import send_notification_email
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Send a test notification email to verify SMTP configuration"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('--to', required=True, help='Recipient email address')
|
||||
parser.add_argument('--username', default='testuser', help='Username to associate with the email')
|
||||
parser.add_argument('--type', default='movie', choices=['movie', 'series'], help='Media type for the template')
|
||||
parser.add_argument('--title', default='Subscribarr Test', help='Title to show in the email')
|
||||
|
||||
def handle(self, *args, **opts):
|
||||
User = get_user_model()
|
||||
email = opts['to']
|
||||
username = opts['username']
|
||||
media_type = opts['type']
|
||||
title = opts['title']
|
||||
|
||||
user, _ = User.objects.get_or_create(username=username, defaults={'email': email})
|
||||
if user.email != email:
|
||||
user.email = email
|
||||
user.save(update_fields=['email'])
|
||||
|
||||
# Use current time as air_date for nicer formatting
|
||||
send_notification_email(
|
||||
user=user,
|
||||
media_title=title,
|
||||
media_type=media_type,
|
||||
overview='This is a test email from Subscribarr to verify your mail settings.',
|
||||
poster_url=None,
|
||||
episode_title='Pilot' if media_type == 'series' else None,
|
||||
season=1 if media_type == 'series' else None,
|
||||
episode=1 if media_type == 'series' else None,
|
||||
air_date=timezone.now(),
|
||||
year=timezone.now().year if media_type == 'movie' else None,
|
||||
release_type='Test'
|
||||
)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(f"Test email queued/sent to {email}"))
|
Reference in New Issue
Block a user