add user email
This commit is contained in:
parent
b81119f53e
commit
228c9bebb8
@ -3,11 +3,11 @@ from pathlib import Path
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
conf = ConnectionConfig(
|
conf = ConnectionConfig(
|
||||||
MAIL_USERNAME = "YourUsername",
|
MAIL_USERNAME = os.environ["MAILER_USERNAME"],
|
||||||
MAIL_PASSWORD = "strong_password",
|
MAIL_PASSWORD = os.environ["MAILER_PASSWORD"],
|
||||||
MAIL_FROM = "your@email.com",
|
MAIL_FROM = os.environ["MAILER_FROM"],
|
||||||
MAIL_PORT = 587,
|
MAIL_PORT = os.environ["MAILER_PORT"],
|
||||||
MAIL_SERVER = "your mail server",
|
MAIL_SERVER = os.environ["MAILER_HOST"],
|
||||||
MAIL_STARTTLS = True,
|
MAIL_STARTTLS = True,
|
||||||
MAIL_SSL_TLS = False,
|
MAIL_SSL_TLS = False,
|
||||||
TEMPLATE_FOLDER = Path(__file__).parents[1] / 'templates',
|
TEMPLATE_FOLDER = Path(__file__).parents[1] / 'templates',
|
||||||
|
@ -4,6 +4,7 @@ from ..models import users
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
from bson import ObjectId
|
from bson import ObjectId
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
|
from fastapi_mail import MessageSchema, MessageType
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@ -114,8 +115,22 @@ async def read_users_me(userSingle: users.UserCreate | None = None):
|
|||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail="Body request is empty"
|
detail="Body request is empty"
|
||||||
)
|
)
|
||||||
fm = FastMail(mail.conf)
|
|
||||||
user_repository = users.UserRepository(database=database.database)
|
user_repository = users.UserRepository(database=database.database)
|
||||||
|
user = user_repository.find_one_by({"username": {'$eq': userSingle.username}})
|
||||||
|
if user is not None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_204_NO_CONTENT,
|
||||||
|
detail="User is already exist"
|
||||||
|
)
|
||||||
|
|
||||||
|
fm = FastMail(mail.conf)
|
||||||
|
message = MessageSchema(
|
||||||
|
subject="Fastapi-Mail module",
|
||||||
|
recipients=userSingle.email,
|
||||||
|
template_body=email.dict(),
|
||||||
|
subtype=MessageType.html,
|
||||||
|
)
|
||||||
|
await fm.send_message(message, template_name="mailer.html")
|
||||||
current_user = users.User(username=userSingle.username, password=user_token.get_password_hash(userSingle.password), email=userSingle.email)
|
current_user = users.User(username=userSingle.username, password=user_token.get_password_hash(userSingle.password), email=userSingle.email)
|
||||||
user_repository.save(current_user)
|
user_repository.save(current_user)
|
||||||
return JSONResponse(status_code=200, content={"message": "email has been sent"})
|
return JSONResponse(status_code=200, content={"message": "email has been sent"})
|
6
app/templates/mailer.html
Normal file
6
app/templates/mailer.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<html>
|
||||||
|
<head><title>Email</title></head>
|
||||||
|
<body><p>Voici un lien https://localhost:8080/api/mail?key={key}&username={username}
|
||||||
|
</p></body>
|
||||||
|
|
||||||
|
</html>
|
Loading…
x
Reference in New Issue
Block a user