Advertisement
Diadon81

Send email to pharmacies

Nov 7th, 2024
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.56 KB | None | 0 0
  1. import smtplib
  2. from email.mime.multipart import MIMEMultipart
  3. from email.mime.text import MIMEText
  4. from email.utils import formataddr
  5. import pandas as pd
  6. import time
  7.  
  8. # Email configuration
  9. gmail_user = 'put_your_email_here'      # Replace with your Gmail address
  10. gmail_password = 'put_you_password_here'         # Replace with your Gmail password
  11. full_name = "put_your_name_here"           # Your full name
  12.  
  13. # CSV file with pharmacy data
  14. file_path = 'pharmacy_contacts.csv'  # Update this path if necessary. For testing, create a new one with a single record. You can even include your email address here.
  15.  
  16. # Load pharmacy data from CSV
  17. pharmacy_data = pd.read_csv(file_path,header=None,names=['Name', 'Email'])
  18. print (pharmacy_data)
  19. # Message template
  20. subject = "Demande de médicaments"
  21. body_html_template = """
  22. <div dir="ltr">
  23.    Bonjour {pharmacy_name},<br><br>
  24.    Mon docteur m'a prescrit une série de médicaments. Malheureusement, tous ne sont pas disponibles dans ma pharmacie, donc je cherche les articles suivants :<br><br>
  25.    - Freestyle Libre 2 - 12 pièces (pour trois mois pour moi et ma fille)<br>
  26.    - Fiasp (au moins 2 boîtes avec 5 stylos)<br>
  27.    - Ozempic - 1 mg (1 boîtes).<br><br>
  28.    Merci de me dire si vous les avez en stock.<br><br>
  29.    Cordialement,<br><br><br>
  30.    --<br>
  31.    <b>Your Name</b><br>
  32. </div>
  33. """
  34.  
  35. def send_email(pharmacy_name, recipient_email):
  36.     """Send an email to the specified pharmacy."""
  37.     try:
  38.         # Create message
  39.         msg = MIMEMultipart('alternative')
  40.         msg['From'] = formataddr((full_name, gmail_user))
  41.         msg['To'] = recipient_email
  42.         msg['Subject'] = pharmacy_name+': '+subject
  43.  
  44.         # Customize the HTML body with the pharmacy name
  45.         body_html = body_html_template.format(pharmacy_name=pharmacy_name)
  46.        
  47.         # Attach both plain text and HTML parts
  48.         msg.attach(MIMEText("Bonjour " + pharmacy_name + ",\n\n" +
  49.                             "Mon docteur m'a prescrit une série de médicaments. Malheureusement, tous ne sont pas disponibles dans ma pharmacie, donc je cherche les articles suivants:\n\n" +
  50.                             "- Freestyle Libre 2 - 12 pièces (pour trois mois pour moi et ma fille)\n" +
  51.                             "- Fiasp (au moins 3 boîtes avec 5 stylos)\n" +
  52.                             "- Ozempic - 1 mg (1 boîtes).\n\n" +
  53.                             "Merci de me dire si vous les avez en stock.\n\n" +
  54.                             "Cordialement,\n\n\nYour_Name\n", 'plain'))
  55.         msg.attach(MIMEText(body_html, 'html'))
  56.  
  57.         # Connect to Gmail's SMTP server
  58.         server = smtplib.SMTP('smtp.gmail.com', 587)
  59.         server.starttls()  # Start TLS for security
  60.         server.login(gmail_user, gmail_password)
  61.  
  62.         # Send email
  63.         server.sendmail(gmail_user, recipient_email, msg.as_string())
  64.         server.quit()
  65.        
  66.         print(f"Email sent to {pharmacy_name} at {recipient_email}")
  67.     except Exception as e:
  68.         print(f"Failed to send email to {pharmacy_name} at {recipient_email}: {e}")
  69.  
  70. def main():
  71.     # Loop through each pharmacy and send an email
  72.     for index, row in pharmacy_data.iterrows():
  73.         pharmacy_name = row['Name']
  74.         recipient_email = row['Email']
  75.        
  76.         if pd.notna(recipient_email):  # Check if email is not NaN
  77.             send_email(pharmacy_name, recipient_email)
  78.             print("Waiting for 30 seconds before sending the next email...")
  79.             time.sleep(30)  # Wait 30 seconds between emails
  80.  
  81.  
  82. if __name__ == "__main__":
  83.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement