Added AWS SES email

This commit is contained in:
2026-04-25 16:11:27 -04:00
parent 5f4a9112c3
commit 98c1b1fa75
6 changed files with 125 additions and 28 deletions
+6 -1
View File
@@ -32,6 +32,8 @@ SIMBRELLA_API_KEY="testtest-api-key-12345"
# support@mermsemr.com
# F7f220a7f.may12002!
# twillo recovery - BPR7DMFHP53D919YWYWB6R5F
MAIL_SERVER=smtp.gmail.com
MAIL_PORT= 465
MAIL_USERNAME=message@chiefsoft.com
@@ -59,4 +61,7 @@ STRIPE_CANCEL_URL="https://qa-panel.mermsemr.com/subscription"
# UPLOAD PATHS
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=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
+2
View File
@@ -59,3 +59,5 @@ STRIPE_CANCEL_URL="https://panel.mermsemr.com/subscription"
UPLOAD_FOLDER="/app/uploads/LIVE"
MEDIA_SERVER="https://media.mermsemr.com"
AWS_ACCESS_KEY_ID=AKIAZAI4GVFJEGM4JHET
AWS_SECRET_ACCESS_KEY=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
+4 -1
View File
@@ -60,4 +60,7 @@ START_URL_PATTERN =".devprov.mermsemr.com"
# UPLOAD PATHS
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=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
+106 -25
View File
@@ -22,6 +22,9 @@ import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
import datetime
import jwt
import random
@@ -31,6 +34,9 @@ from app.config import Config
import smtplib, ssl
from email.message import EmailMessage
from app.notifications.aws.aws_mailer import send_email_ses
class AccountService(BaseService):
JWT_SECRET_KEY = Config.JWT_SECRET_KEY
@@ -644,59 +650,55 @@ class AccountService(BaseService):
@staticmethod
def process_test_email(data):
logger.info(f"Email Test Enter", exc_info=True)
AccountService.test_new_mailer()
AccountService.send_register_mail('ameye@chiefsoft.com', 'pend-uid---', 100, 'olutest', 'Ameyetest')
logger.info(f"Email Test Enter 001", exc_info=True)
send_email_ses(
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)
@staticmethod
def test_new_mailer():
def test_new_mailer_old():
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 = "ijcl pyko pswl phra"
app_password55 = "ijclpykopswlphra"
app_password = "flhf cjjx bguv fycg"
app_password = "flhfcjjxbguvfycg"
# --- Create the Email Message ---
msg = EmailMessage()
msg.set_content("This is the body of the email sent from Python.")
# 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.gmail.com"
port = 465 # For SSL
port = 587 # For non SSL
port = 587 # STARTTLS
# Create a secure SSL context
# context = ssl.create_default_context()
context = ssl.create_default_context()
logger.info("test_new_mailer 003 ")
try:
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:
# 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")
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!")
# 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:
logger.error("Authentication error: Check your username and password.")
@@ -708,6 +710,85 @@ class AccountService(BaseService):
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):
pending_member = {
+2
View File
@@ -7,6 +7,8 @@ services:
ports:
- "${APP_PORT:-14700}:5000"
environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- FLASK_APP=${FLASK_APP}
- FLASK_ENV=${FLASK_ENV}
- DATABASE_URL=postgresql+psycopg2://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
+5 -1
View File
@@ -49,4 +49,8 @@ requests
openai
redis
redis
sendgrid
boto3