forked from beimingwu/beimingwu
Merge pull request #340 from Learnware-LAMDA/sync_email_worker
fix(backend): use sync worker to send email
This commit is contained in:
commit
4ebdeae6cf
|
|
@ -5,9 +5,10 @@ import lib.database_operations as dbops
|
|||
import itsdangerous
|
||||
import smtplib
|
||||
import ssl
|
||||
import multiprocessing as mp
|
||||
import multiprocessing.dummy as mp
|
||||
import socks
|
||||
import socket
|
||||
import context as backend_context
|
||||
|
||||
|
||||
__all__ = ["get_parameters", "generate_random_str", "dump_learnware"]
|
||||
|
|
@ -69,22 +70,25 @@ def send_email_worker(sender_email, password, receiver_email, message, smtp_serv
|
|||
if len(smtp_server) == 0:
|
||||
return
|
||||
|
||||
if len(proxy_host) > 0 and proxy_port > 0:
|
||||
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy_host, proxy_port)
|
||||
original_socket = socket.socket
|
||||
socket.socket = socks.socksocket
|
||||
pass
|
||||
try:
|
||||
if len(proxy_host) > 0 and proxy_port > 0:
|
||||
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy_host, proxy_port)
|
||||
original_socket = socket.socket
|
||||
socket.socket = socks.socksocket
|
||||
pass
|
||||
|
||||
context = ssl.create_default_context()
|
||||
context = ssl.create_default_context()
|
||||
|
||||
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
|
||||
server.login(sender_email, password)
|
||||
server.sendmail(sender_email, receiver_email, message)
|
||||
pass
|
||||
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
|
||||
server.login(sender_email, password)
|
||||
server.sendmail(sender_email, receiver_email, message)
|
||||
pass
|
||||
|
||||
if len(proxy_host) > 0 and proxy_port > 0:
|
||||
socket.socket = original_socket
|
||||
pass
|
||||
if len(proxy_host) > 0 and proxy_port > 0:
|
||||
socket.socket = original_socket
|
||||
pass
|
||||
except Exception as e:
|
||||
backend_context.logger.exception(e)
|
||||
pass
|
||||
|
||||
|
||||
|
|
@ -110,12 +114,15 @@ Subject: Please activate your account\r\n\
|
|||
Beimingwu Group
|
||||
"""
|
||||
|
||||
thread = mp.Process(
|
||||
target=send_email_worker,
|
||||
args=(sender_email, password, receiver_email, message, smtp_server, port, proxy_host, proxy_port),
|
||||
)
|
||||
thread.start()
|
||||
return thread
|
||||
# thread = mp.Process(
|
||||
# target=send_email_worker,
|
||||
# args=(sender_email, password, receiver_email, message, smtp_server, port, proxy_host, proxy_port),
|
||||
# )
|
||||
# thread.start()
|
||||
|
||||
# return thread
|
||||
send_email_worker(sender_email, password, receiver_email, message, smtp_server, port, proxy_host, proxy_port)
|
||||
return None
|
||||
|
||||
|
||||
def send_reset_password_email(email: str, verification_code: str, user_id: str, email_config: dict) -> bool:
|
||||
|
|
@ -141,9 +148,12 @@ Subject: Reset your password\r\n\
|
|||
Beimingwu Group
|
||||
"""
|
||||
|
||||
thread = mp.Process(
|
||||
target=send_email_worker,
|
||||
args=(sender_email, password, receiver_email, message, smtp_server, port, proxy_host, proxy_port),
|
||||
)
|
||||
thread.start()
|
||||
return thread
|
||||
# thread = mp.Process(
|
||||
# target=send_email_worker,
|
||||
# args=(sender_email, password, receiver_email, message, smtp_server, port, proxy_host, proxy_port),
|
||||
# )
|
||||
# thread.start()
|
||||
# return thread
|
||||
|
||||
send_email_worker(sender_email, password, receiver_email, message, smtp_server, port, proxy_host, proxy_port)
|
||||
return None
|
||||
|
|
|
|||
Loading…
Reference in New Issue