Ronaldodev commited on
Commit
19968c2
1 Parent(s): c145bc4

modification"

Browse files
Files changed (2) hide show
  1. app.py +30 -20
  2. requirements.txt +13 -0
app.py CHANGED
@@ -1,27 +1,34 @@
1
- from flask import Flask, request, jsonify
 
2
  import smtplib
3
  from email.mime.multipart import MIMEMultipart
4
  from email.mime.text import MIMEText
 
 
5
 
6
- app = Flask(__name__)
 
7
 
 
8
 
9
- @app.route('/send_email', methods=['POST'])
10
- def send_email():
11
- data = request.get_json()
12
 
13
- # Vérification des données reçues
14
- required_fields = ['nom', 'prenom', 'email', 'message']
15
- for field in required_fields:
16
- if field not in data:
17
- return jsonify({'error': f'Missing field: {field}'}), 400
 
18
 
19
- nom = data['nom']
20
- prenom = data['prenom']
21
- sender_email = data['email']
22
- message = data['message']
23
 
24
- # Sujet et destinataire par défaut, ajustez selon vos besoins
 
 
 
 
 
 
 
 
25
  receiver_email = '[email protected]' # Changez ceci selon votre configuration
26
  subject = f'Message from Bénin Traduction'
27
 
@@ -36,14 +43,17 @@ def send_email():
36
  # Envoi de l'e-mail
37
  with smtplib.SMTP('smtp.gmail.com', 587) as server:
38
  server.starttls()
39
- server.login('awademeronaldoo@gmail.com', 'ftrc foyu jlza dwmv')
40
  server.send_message(msg)
41
 
42
- return jsonify({'message': 'E-mail envoyé avec succès'}), 200
43
 
44
  except Exception as e:
45
- return jsonify({'error': str(e)}), 500
 
46
 
 
 
 
47
 
48
- if __name__ == '__main__':
49
- app.run(debug=True)
 
1
+ from fastapi import FastAPI, HTTPException
2
+ from pydantic import BaseModel
3
  import smtplib
4
  from email.mime.multipart import MIMEMultipart
5
  from email.mime.text import MIMEText
6
+ import os
7
+ from dotenv import load_dotenv
8
 
9
+ # Charger les variables d'environnement
10
+ load_dotenv()
11
 
12
+ app = FastAPI()
13
 
 
 
 
14
 
15
+ # Définir un modèle de données pour la requête
16
+ class EmailRequest(BaseModel):
17
+ nom: str
18
+ prenom: str
19
+ email: str
20
+ message: str
21
 
 
 
 
 
22
 
23
+ @app.post("/send_email")
24
+ async def send_email(request: EmailRequest):
25
+ # Extraire les données du modèle
26
+ nom = request.nom
27
+ prenom = request.prenom
28
+ sender_email = request.email
29
+ message = request.message
30
+
31
+ # Sujet et destinataire par défaut
32
  receiver_email = '[email protected]' # Changez ceci selon votre configuration
33
  subject = f'Message from Bénin Traduction'
34
 
 
43
  # Envoi de l'e-mail
44
  with smtplib.SMTP('smtp.gmail.com', 587) as server:
45
  server.starttls()
46
+ server.login(os.getenv('EMAIL_USER'), os.getenv('EMAIL_PASS')) # Utilisez des variables d'environnement
47
  server.send_message(msg)
48
 
49
+ return {"message": "E-mail envoyé avec succès"}
50
 
51
  except Exception as e:
52
+ raise HTTPException(status_code=500, detail=str(e))
53
+
54
 
55
+ # Lancer l'application avec Uvicorn
56
+ if __name__ == "__main__":
57
+ import uvicorn
58
 
59
+ uvicorn.run(app, host="0.0.0.0", port=7860)
 
requirements.txt CHANGED
@@ -1,7 +1,20 @@
 
 
1
  blinker==1.8.2
2
  click==8.1.7
 
3
  Flask==3.0.3
 
 
4
  itsdangerous==2.2.0
5
  Jinja2==3.1.4
 
6
  MarkupSafe==2.1.5
 
 
 
 
 
 
 
7
  Werkzeug==3.0.4
 
1
+ annotated-types==0.7.0
2
+ anyio==4.4.0
3
  blinker==1.8.2
4
  click==8.1.7
5
+ fastapi==0.114.2
6
  Flask==3.0.3
7
+ h11==0.14.0
8
+ idna==3.10
9
  itsdangerous==2.2.0
10
  Jinja2==3.1.4
11
+ load-dotenv==0.1.0
12
  MarkupSafe==2.1.5
13
+ pydantic==2.9.1
14
+ pydantic_core==2.23.3
15
+ python-dotenv==1.0.1
16
+ sniffio==1.3.1
17
+ starlette==0.38.5
18
+ typing_extensions==4.12.2
19
+ uvicorn==0.30.6
20
  Werkzeug==3.0.4