Added AWS SES email
This commit is contained in:
@@ -32,6 +32,8 @@ SIMBRELLA_API_KEY="testtest-api-key-12345"
|
|||||||
# support@mermsemr.com
|
# support@mermsemr.com
|
||||||
# F7f220a7f.may12002!
|
# F7f220a7f.may12002!
|
||||||
|
|
||||||
|
# twillo recovery - BPR7DMFHP53D919YWYWB6R5F
|
||||||
|
|
||||||
MAIL_SERVER=smtp.gmail.com
|
MAIL_SERVER=smtp.gmail.com
|
||||||
MAIL_PORT= 465
|
MAIL_PORT= 465
|
||||||
MAIL_USERNAME=message@chiefsoft.com
|
MAIL_USERNAME=message@chiefsoft.com
|
||||||
@@ -59,4 +61,7 @@ STRIPE_CANCEL_URL="https://qa-panel.mermsemr.com/subscription"
|
|||||||
|
|
||||||
# UPLOAD PATHS
|
# UPLOAD PATHS
|
||||||
UPLOAD_FOLDER="/app/uploads/DEV"
|
UPLOAD_FOLDER="/app/uploads/DEV"
|
||||||
MEDIA_SERVER="https://qa-media.mermsemr.com"
|
MEDIA_SERVER="https://qa-media.mermsemr.com"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=AKIAZAI4GVFJEGM4JHET
|
||||||
|
AWS_SECRET_ACCESS_KEY=sG2yL+x95MqflugQfiPjSf793O8MyjxZSNWEqKqu
|
||||||
@@ -59,3 +59,5 @@ STRIPE_CANCEL_URL="https://panel.mermsemr.com/subscription"
|
|||||||
UPLOAD_FOLDER="/app/uploads/LIVE"
|
UPLOAD_FOLDER="/app/uploads/LIVE"
|
||||||
MEDIA_SERVER="https://media.mermsemr.com"
|
MEDIA_SERVER="https://media.mermsemr.com"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=AKIAZAI4GVFJEGM4JHET
|
||||||
|
AWS_SECRET_ACCESS_KEY=sG2yL+x95MqflugQfiPjSf793O8MyjxZSNWEqKqu
|
||||||
@@ -60,4 +60,7 @@ START_URL_PATTERN =".devprov.mermsemr.com"
|
|||||||
|
|
||||||
# UPLOAD PATHS
|
# UPLOAD PATHS
|
||||||
UPLOAD_FOLDER="/app/uploads/DEV"
|
UPLOAD_FOLDER="/app/uploads/DEV"
|
||||||
MEDIA_SERVER="https://qa-media.mermsemr.com"
|
MEDIA_SERVER="https://qa-media.mermsemr.com"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=AKIAZAI4GVFJEGM4JHET
|
||||||
|
AWS_SECRET_ACCESS_KEY=sG2yL+x95MqflugQfiPjSf793O8MyjxZSNWEqKqu
|
||||||
+106
-25
@@ -22,6 +22,9 @@ import smtplib
|
|||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
from email.mime.multipart import MIMEMultipart
|
from email.mime.multipart import MIMEMultipart
|
||||||
|
|
||||||
|
from sendgrid import SendGridAPIClient
|
||||||
|
from sendgrid.helpers.mail import Mail
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import jwt
|
import jwt
|
||||||
import random
|
import random
|
||||||
@@ -31,6 +34,9 @@ from app.config import Config
|
|||||||
import smtplib, ssl
|
import smtplib, ssl
|
||||||
from email.message import EmailMessage
|
from email.message import EmailMessage
|
||||||
|
|
||||||
|
from app.notifications.aws.aws_mailer import send_email_ses
|
||||||
|
|
||||||
|
|
||||||
class AccountService(BaseService):
|
class AccountService(BaseService):
|
||||||
JWT_SECRET_KEY = Config.JWT_SECRET_KEY
|
JWT_SECRET_KEY = Config.JWT_SECRET_KEY
|
||||||
|
|
||||||
@@ -644,59 +650,55 @@ class AccountService(BaseService):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def process_test_email(data):
|
def process_test_email(data):
|
||||||
logger.info(f"Email Test Enter", exc_info=True)
|
logger.info(f"Email Test Enter 001", exc_info=True)
|
||||||
AccountService.test_new_mailer()
|
send_email_ses(
|
||||||
AccountService.send_register_mail('ameye@chiefsoft.com', 'pend-uid---', 100, 'olutest', 'Ameyetest')
|
to_email="ameye@chiefsoft.com",
|
||||||
|
subject="Test from Merms",
|
||||||
|
html_content="<strong>Hello from AWS SES</strong>"
|
||||||
|
)
|
||||||
|
# AccountService.test_new_mailer()
|
||||||
|
# AccountService.send_register_mail('ameye@chiefsoft.com', 'pend-uid---', 100, 'olutest', 'Ameyetest')
|
||||||
logger.info(f"Email Test", exc_info=True)
|
logger.info(f"Email Test", exc_info=True)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def test_new_mailer():
|
def test_new_mailer_old():
|
||||||
logger.info("test_new_mailer 000 ")
|
logger.info("test_new_mailer 000 ")
|
||||||
# --- Email Configuration ---
|
# --- Email Configuration ---
|
||||||
sender_email = "support@mermsemr.com" # Enter your email address
|
sender_email = "support@mermsemr.com" # Enter your email address
|
||||||
receiver_email = "ameye@chiefsoft.com" # Enter the recipient's address
|
receiver_email = "ameye@chiefsoft.com" # Enter the recipient's address
|
||||||
# Use the App Password generated in Step 1
|
# Use the App Password generated in Step 1
|
||||||
app_password = "ijcl pyko pswl phra"
|
app_password = "flhf cjjx bguv fycg"
|
||||||
app_password55 = "ijclpykopswlphra"
|
app_password = "flhfcjjxbguvfycg"
|
||||||
|
|
||||||
# --- Create the Email Message ---
|
# --- Create the Email Message ---
|
||||||
msg = EmailMessage()
|
# msg = EmailMessage()
|
||||||
msg.set_content("This is the body of the email sent from Python.")
|
# msg.set_content("This is the body of the email sent from Python.")
|
||||||
|
msg = MIMEText("This is the body of my email.")
|
||||||
msg['Subject'] = "Subject Line from Python"
|
msg['Subject'] = "Subject Line from Python"
|
||||||
msg['From'] = sender_email
|
msg['From'] = sender_email
|
||||||
msg['To'] = receiver_email
|
msg['To'] = receiver_email
|
||||||
|
|
||||||
# --- Connect to Gmail's SMTP Server and Send the Email ---
|
# --- Connect to Gmail's SMTP Server and Send the Email ---
|
||||||
smtp_server = "smtp.gmail.com"
|
smtp_server = "smtp.gmail.com"
|
||||||
port = 465 # For SSL
|
port = 587 # STARTTLS
|
||||||
port = 587 # For non SSL
|
|
||||||
|
|
||||||
# Create a secure SSL context
|
context = ssl.create_default_context()
|
||||||
# context = ssl.create_default_context()
|
|
||||||
logger.info("test_new_mailer 003 ")
|
logger.info("test_new_mailer 003 ")
|
||||||
try:
|
try:
|
||||||
logger.info("test_new_mailer 000 44")
|
logger.info("test_new_mailer 000 44")
|
||||||
# with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
|
|
||||||
with smtplib.SMTP(smtp_server, port) as server:
|
with smtplib.SMTP(smtp_server, port) as server:
|
||||||
# server.starttls()
|
logger.info("test_new_mailer 000 44-1")
|
||||||
|
server.ehlo()
|
||||||
|
logger.info("test_new_mailer 000 44-2")
|
||||||
|
server.starttls(context=context)
|
||||||
|
server.ehlo()
|
||||||
logger.info("test_new_mailer 000 55")
|
logger.info("test_new_mailer 000 55")
|
||||||
server.login(sender_email, app_password)
|
server.login(sender_email, app_password)
|
||||||
logger.info("test_new_mailer 000 66")
|
logger.info("test_new_mailer 000 66")
|
||||||
server.send_message(msg)
|
server.send_message(msg)
|
||||||
logger.info("test_new_mailer 000 77")
|
logger.info("test_new_mailer 000 77")
|
||||||
|
|
||||||
|
|
||||||
logger.info("Email sent successfully!")
|
logger.info("Email sent successfully!")
|
||||||
|
|
||||||
# msg = EmailMessage()
|
|
||||||
# msg.set_content("This is the body of the email.")
|
|
||||||
# msg['Subject'] = "Test Subject"
|
|
||||||
# msg['From'] = "sender@example.com"
|
|
||||||
# msg['To'] = "recipient@example.com"
|
|
||||||
#
|
|
||||||
# server.send_message(msg)
|
|
||||||
# print("Email sent successfully!")
|
|
||||||
|
|
||||||
except smtplib.SMTPAuthenticationError:
|
except smtplib.SMTPAuthenticationError:
|
||||||
logger.error("Authentication error: Check your username and password.")
|
logger.error("Authentication error: Check your username and password.")
|
||||||
|
|
||||||
@@ -708,6 +710,85 @@ class AccountService(BaseService):
|
|||||||
logger.error(f"An unrelated error occurred: {e}")
|
logger.error(f"An unrelated error occurred: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def test_new_mailer():
|
||||||
|
|
||||||
|
# Replace these with your actual details
|
||||||
|
SENDGRID_API_KEY = "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"
|
||||||
|
FROM_EMAIL = 'support@mermsemr.com' # Must be a verified sender in SendGrid
|
||||||
|
TO_EMAIL = 'works@chiefsoft.com'
|
||||||
|
|
||||||
|
message = Mail(
|
||||||
|
from_email=FROM_EMAIL,
|
||||||
|
to_emails=TO_EMAIL,
|
||||||
|
subject='Sending with Twilio SendGrid is Fun',
|
||||||
|
html_content='<strong>and easy to do anywhere, even with Python</strong>'
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Initialize the SendGrid client
|
||||||
|
sg = SendGridAPIClient(SENDGRID_API_KEY)
|
||||||
|
|
||||||
|
# Send the email
|
||||||
|
response = sg.send(message)
|
||||||
|
|
||||||
|
# Print status codes: 202 means the request was accepted for delivery
|
||||||
|
print(f"Status Code: {response.status_code}")
|
||||||
|
print(f"Body: {response.body}")
|
||||||
|
print(f"Headers: {response.headers}")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"An unrelated error occurred: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
# logger.info("test_new_mailer 000 ")
|
||||||
|
# # --- Email Configuration ---
|
||||||
|
# sender_email = "support@mermsemr.com" # Enter your email address
|
||||||
|
# receiver_email = "ameye@chiefsoft.com" # Enter the recipient's address
|
||||||
|
# # Use the App Password generated in Step 1
|
||||||
|
# app_password = "flhf cjjx bguv fycg"
|
||||||
|
# app_password = "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"
|
||||||
|
#
|
||||||
|
# # --- Create the Email Message ---
|
||||||
|
# # msg = EmailMessage()
|
||||||
|
# # msg.set_content("This is the body of the email sent from Python.")
|
||||||
|
# msg = MIMEText("This is the body of my email.")
|
||||||
|
# msg['Subject'] = "Subject Line from Python"
|
||||||
|
# msg['From'] = sender_email
|
||||||
|
# msg['To'] = receiver_email
|
||||||
|
#
|
||||||
|
# # --- Connect to Gmail's SMTP Server and Send the Email ---
|
||||||
|
# smtp_server = "smtp.sendgrid.net"
|
||||||
|
# port = 587 # STARTTLS
|
||||||
|
#
|
||||||
|
# context = ssl.create_default_context()
|
||||||
|
# logger.info("test_new_mailer 003 ")
|
||||||
|
# try:
|
||||||
|
# logger.info("test_new_mailer 000 44")
|
||||||
|
# with smtplib.SMTP(smtp_server, port) as server:
|
||||||
|
# logger.info("test_new_mailer 000 44-1")
|
||||||
|
# server.ehlo()
|
||||||
|
# logger.info("test_new_mailer 000 44-2")
|
||||||
|
# server.starttls(context=context)
|
||||||
|
# server.ehlo()
|
||||||
|
# logger.info("test_new_mailer 000 55")
|
||||||
|
# server.login(sender_email, app_password)
|
||||||
|
# logger.info("test_new_mailer 000 66")
|
||||||
|
# server.send_message(msg)
|
||||||
|
# logger.info("test_new_mailer 000 77")
|
||||||
|
# logger.info("Email sent successfully!")
|
||||||
|
#
|
||||||
|
# except smtplib.SMTPAuthenticationError:
|
||||||
|
# logger.error("Authentication error: Check your username and password.")
|
||||||
|
#
|
||||||
|
# except smtplib.SMTPConnectError as e:
|
||||||
|
# logger.error(f"Connection error: {e}")
|
||||||
|
# except smtplib.SMTPException as e:
|
||||||
|
# logger.error(f"An unexpected SMTP error occurred: {e}")
|
||||||
|
# except Exception as e:
|
||||||
|
# logger.error(f"An unrelated error occurred: {e}")
|
||||||
|
|
||||||
|
|
||||||
def send_register_mail(signup_email, pending_uid, pending_id, firstname, lastname):
|
def send_register_mail(signup_email, pending_uid, pending_id, firstname, lastname):
|
||||||
|
|
||||||
pending_member = {
|
pending_member = {
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "${APP_PORT:-14700}:5000"
|
- "${APP_PORT:-14700}:5000"
|
||||||
environment:
|
environment:
|
||||||
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||||
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||||
- FLASK_APP=${FLASK_APP}
|
- FLASK_APP=${FLASK_APP}
|
||||||
- FLASK_ENV=${FLASK_ENV}
|
- FLASK_ENV=${FLASK_ENV}
|
||||||
- DATABASE_URL=postgresql+psycopg2://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
|
- DATABASE_URL=postgresql+psycopg2://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
|
||||||
|
|||||||
+5
-1
@@ -49,4 +49,8 @@ requests
|
|||||||
|
|
||||||
openai
|
openai
|
||||||
|
|
||||||
redis
|
redis
|
||||||
|
|
||||||
|
sendgrid
|
||||||
|
|
||||||
|
boto3
|
||||||
Reference in New Issue
Block a user