Spaces:
Sleeping
Sleeping
| import os | |
| from dotenv import load_dotenv | |
| import msal | |
| import requests | |
| def send_email(reason, email, message) -> None: | |
| body = f""" | |
| ICD coder (Huggingface) | |
| Subject: {reason} | |
| Message: {message} | |
| Contact Information: {email} | |
| """ | |
| load_dotenv() | |
| client_id = os.getenv("CLIENT_ID") | |
| client_secret = os.getenv("CLIENT_SECRET") | |
| tenant_id = os.getenv("TENANT_ID") | |
| authority = f"https://login.microsoftonline.com/{tenant_id}" | |
| sender = os.getenv("MAIL_SENDER") | |
| receiver = os.getenv("MAIL_RECIPIENT") | |
| cc_receiver = os.getenv("CC_RECIPIENT") | |
| app = msal.ConfidentialClientApplication( | |
| client_id=client_id, | |
| client_credential=client_secret, | |
| authority=authority) | |
| scopes = ["https://graph.microsoft.com/.default"] | |
| result = app.acquire_token_silent(scopes, account=None) | |
| if not result: | |
| print("No suitable token exists in cache. Let's get a new one from Azure Active Directory.") | |
| result = app.acquire_token_for_client(scopes=scopes) | |
| if "access_token" in result: | |
| endpoint = f'https://graph.microsoft.com/v1.0/users/{sender}/sendMail' | |
| email_msg = { | |
| 'Message': { | |
| 'Subject': reason, | |
| 'Body': { | |
| 'ContentType': 'Text', | |
| 'Content': body | |
| }, | |
| 'ToRecipients': [{'EmailAddress': {'Address': receiver}}], | |
| 'CcRecipients': [{'EmailAddress': {'Address': cc_receiver}}] # Added CcRecipients here | |
| }, | |
| 'SaveToSentItems': 'true' | |
| } | |
| r = requests.post(endpoint, headers={'Authorization': 'Bearer ' + result['access_token']}, json=email_msg) | |
| if r.ok: | |
| print('Sent email successfully') | |
| else: | |
| print(r.json()) | |
| else: | |
| print(result.get("error")) | |
| print(result.get("error_description")) | |
| print(result.get("correlation_id")) | |