如何循环发送某些内容以在 Django 中的一封电子邮件中发送
How to loop something to send in one email in Django
我喜欢给自己发送电子邮件,其中包含符合条件的用户名。我的问题是,如果我在 mass_mail 中使用 for 循环,它会在单独的电子邮件中发送每个结果。因此,如果我有 6 个结果,它会发送 6 次电子邮件,每封电子邮件中包含一个结果:
(我正在使用 mass_mail 因为将来我想向更多用户发送电子邮件,而不仅仅是我。)
user_weekly.py
from django.core.management.base import BaseCommand
from xy.models import Profile
from django.core.mail import send_mass_mail
recipient_list = Profile.objects.raw('SELECT * FROM auth_user LEFT JOIN xy_profile ON auth_user.id = xy_profile.user_id WHERE email = 1')
messages = [(subject, 'Hello! Users are the following:' + r.last_name, from_email, ['my@email.com]) for r in recipient_list]
send_mass_mail(messages)
在这种情况下,如何才能将所有结果发送到一封电子邮件而不是 6 封单独的电子邮件?
我也试过这样创建一个变量:reclist = r.last_name
但在这种情况下,它只发送一封电子邮件,其中只有一个用户名。
如何在一封电子邮件中获取所有用户的姓名?
您可以尝试按如下方式循环生成字符串
from django.core.management.base import BaseCommand
from xy.models import Profile
from django.core.mail import send_mass_mail
recipient_list = Profile.objects.raw('SELECT * FROM auth_user LEFT JOIN xy_profile ON auth_user.id = xy_profile.user_id WHERE email = 1')
message='Hello! Users are the following: '
for r in recipient_list:
message+=r.last_name+", "
message=message[2:]
send_mass_mail((subject, message, from_email, 'my@email.com'))
我喜欢给自己发送电子邮件,其中包含符合条件的用户名。我的问题是,如果我在 mass_mail 中使用 for 循环,它会在单独的电子邮件中发送每个结果。因此,如果我有 6 个结果,它会发送 6 次电子邮件,每封电子邮件中包含一个结果: (我正在使用 mass_mail 因为将来我想向更多用户发送电子邮件,而不仅仅是我。)
user_weekly.py
from django.core.management.base import BaseCommand
from xy.models import Profile
from django.core.mail import send_mass_mail
recipient_list = Profile.objects.raw('SELECT * FROM auth_user LEFT JOIN xy_profile ON auth_user.id = xy_profile.user_id WHERE email = 1')
messages = [(subject, 'Hello! Users are the following:' + r.last_name, from_email, ['my@email.com]) for r in recipient_list]
send_mass_mail(messages)
在这种情况下,如何才能将所有结果发送到一封电子邮件而不是 6 封单独的电子邮件?
我也试过这样创建一个变量:reclist = r.last_name
但在这种情况下,它只发送一封电子邮件,其中只有一个用户名。
如何在一封电子邮件中获取所有用户的姓名?
您可以尝试按如下方式循环生成字符串
from django.core.management.base import BaseCommand
from xy.models import Profile
from django.core.mail import send_mass_mail
recipient_list = Profile.objects.raw('SELECT * FROM auth_user LEFT JOIN xy_profile ON auth_user.id = xy_profile.user_id WHERE email = 1')
message='Hello! Users are the following: '
for r in recipient_list:
message+=r.last_name+", "
message=message[2:]
send_mass_mail((subject, message, from_email, 'my@email.com'))