Unverified Commit 7715e62d authored by BaiJiangJie's avatar BaiJiangJie Committed by GitHub

[Update] 邮件设置添加配置项:发送账号 (#2796)

parent 5286bf3a
...@@ -24,7 +24,8 @@ def send_mail_async(*args, **kwargs): ...@@ -24,7 +24,8 @@ def send_mail_async(*args, **kwargs):
if len(args) == 3: if len(args) == 3:
args = list(args) args = list(args)
args[0] = settings.EMAIL_SUBJECT_PREFIX + args[0] args[0] = settings.EMAIL_SUBJECT_PREFIX + args[0]
args.insert(2, settings.EMAIL_HOST_USER) email_from = settings.EMAIL_FROM or settings.EMAIL_HOST_USER
args.insert(2, email_from)
args = tuple(args) args = tuple(args)
try: try:
......
...@@ -353,6 +353,7 @@ EMAIL_HOST = 'smtp.jumpserver.org' ...@@ -353,6 +353,7 @@ EMAIL_HOST = 'smtp.jumpserver.org'
EMAIL_PORT = 25 EMAIL_PORT = 25
EMAIL_HOST_USER = 'noreply@jumpserver.org' EMAIL_HOST_USER = 'noreply@jumpserver.org'
EMAIL_HOST_PASSWORD = '' EMAIL_HOST_PASSWORD = ''
EMAIL_FROM = ''
EMAIL_USE_SSL = False EMAIL_USE_SSL = False
EMAIL_USE_TLS = False EMAIL_USE_TLS = False
EMAIL_SUBJECT_PREFIX = '[JMS] ' EMAIL_SUBJECT_PREFIX = '[JMS] '
......
This diff is collapsed.
...@@ -30,6 +30,7 @@ class MailTestingAPI(APIView): ...@@ -30,6 +30,7 @@ class MailTestingAPI(APIView):
def post(self, request): def post(self, request):
serializer = self.serializer_class(data=request.data) serializer = self.serializer_class(data=request.data)
if serializer.is_valid(): if serializer.is_valid():
email_from = serializer.validated_data["EMAIL_FROM"]
email_host_user = serializer.validated_data["EMAIL_HOST_USER"] email_host_user = serializer.validated_data["EMAIL_HOST_USER"]
for k, v in serializer.validated_data.items(): for k, v in serializer.validated_data.items():
if k.startswith('EMAIL'): if k.startswith('EMAIL'):
...@@ -37,7 +38,8 @@ class MailTestingAPI(APIView): ...@@ -37,7 +38,8 @@ class MailTestingAPI(APIView):
try: try:
subject = "Test" subject = "Test"
message = "Test smtp setting" message = "Test smtp setting"
send_mail(subject, message, email_host_user, [email_host_user]) email_from = email_from or email_host_user
send_mail(subject, message, email_from, [email_host_user])
except Exception as e: except Exception as e:
return Response({"error": str(e)}, status=401) return Response({"error": str(e)}, status=401)
......
...@@ -80,7 +80,14 @@ class EmailSettingForm(BaseForm): ...@@ -80,7 +80,14 @@ class EmailSettingForm(BaseForm):
) )
EMAIL_HOST_PASSWORD = FormEncryptCharField( EMAIL_HOST_PASSWORD = FormEncryptCharField(
max_length=1024, label=_("SMTP password"), widget=forms.PasswordInput, max_length=1024, label=_("SMTP password"), widget=forms.PasswordInput,
required=False, help_text=_("Some provider use token except password") required=False,
help_text=_("Tips: Some provider use token except password")
)
EMAIL_FROM = forms.CharField(
max_length=128, label=_("Send user"), initial='', required=False,
help_text=_(
"Tips: Send mail account, default SMTP account as the send account"
)
) )
EMAIL_USE_SSL = forms.BooleanField( EMAIL_USE_SSL = forms.BooleanField(
label=_("Use SSL"), initial=False, required=False, label=_("Use SSL"), initial=False, required=False,
......
...@@ -6,6 +6,7 @@ class MailTestSerializer(serializers.Serializer): ...@@ -6,6 +6,7 @@ class MailTestSerializer(serializers.Serializer):
EMAIL_PORT = serializers.IntegerField(default=25) EMAIL_PORT = serializers.IntegerField(default=25)
EMAIL_HOST_USER = serializers.CharField(max_length=1024) EMAIL_HOST_USER = serializers.CharField(max_length=1024)
EMAIL_HOST_PASSWORD = serializers.CharField() EMAIL_HOST_PASSWORD = serializers.CharField()
EMAIL_FROM = serializers.CharField(required=False, allow_blank=True)
EMAIL_USE_SSL = serializers.BooleanField(default=False) EMAIL_USE_SSL = serializers.BooleanField(default=False)
EMAIL_USE_TLS = serializers.BooleanField(default=False) EMAIL_USE_TLS = serializers.BooleanField(default=False)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment