[PYTHON] Code zum Senden von E-Mails basierend auf der Excel-E-Mail-Liste

Warum magst du das?

Es gibt einige sogenannte Aufgaben, wie das Erstellen einer Sternenkarte für die Arbeit (z. B. die Teilnahme an einer Trinkparty außerhalb der Arbeit) und das Drängen von Personen, die diese noch nicht eingereicht haben. Also habe ich beschlossen, es mit Python zu verarbeiten. Wenn Sie ein Unternehmen sind, das Microsoft Office 365 verwendet, können Sie dies anscheinend ohne solchen Code tun, wenn Sie Automate Flow verwenden. Ich habe es jedoch vorbereitet, da es keine Umgebung gibt, die um mich herum verwendet werden kann.

Referenziert

Was vorzubereiten?

Bereiten Sie eine Datei mit dem Namen "maillist.xlsx" vor, wie unten gezeigt. コメント 2020-09-11 144102.png

mail_send.py


import openpyxl, smtplib
from email import message

wb = openpyxl.load_workbook('maillist.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
lastCol = sheet.max_column
latest_month = sheet.cell(row=1, column=lastCol).value

#Überprüfen Sie die Excel-Datei
unpaid_Members = {}
for r in range(2,sheet.max_row + 1):
    payment = sheet.cell(row=r, column=lastCol).value
    if payment != 'paid':
        name = sheet.cell(row=r, column=1).value
        email = sheet.cell(row=r, column=2).value
        unpaid_Members[name] = email

#Melden Sie sich bei Ihrem E-Mail-Konto an

smtp_host = 'smtp-mail.outlook.com'
smtp_port = 587
send_name = 'Master'
from_email ='[email protected]'
username = '[email protected]'
password = 'password'

smtp_obj = smtplib.SMTP(smtp_host, smtp_port)
smtp_obj.ehlo()
smtp_obj.starttls()
smtp_obj.login(username,password)

#Fordern Sie den Benutzer auf dem Befehlszeilenbildschirm zur Eingabe eines Kennworts auf
#Wenn Sie es eingeben möchten, importieren Sie das sys-Paket und führen Sie den folgenden Code aus.
# smtp_obj.login(username,sys.argv[1])

#eine E-Mail senden
for name, email in unpaid_Members.items():
    msg = message.EmailMessage()
    msg.set_content("""
{}Herr
Gute Arbeit.
Es scheint, dass die Teilnahmegebühr für die Willkommensparty nächste Woche noch nicht bezahlt wurde.
Bitte bestätigen.
    """.format(name))
    msg['From'] = '{}<{}>'.format(send_name, from_email)
    msg['Subject'] = '{}In Bezug auf den Zahlungsbetrag von'.format(latest_month)    
    print('Eine E-Mail senden{}...' .format(email))
    sendmail_Status = smtp_obj.sendmail(from_email, email, msg.as_string())
if sendmail_Status != {}:
    print('{}Beim Senden der E-Mail an ist ein Problem aufgetreten: {}'.format(email,sendmail_Status))
smtp_obj.quit()

Wie benutzt man

Jetzt müssen Sie nur noch diese .py-Datei ausführen. Durch Festlegen und Ausführen eines Zeitplans ist es möglich, unbezahlte Personen automatisch zu drängen, die Wiederaufbaugebühr für die Trinkparty jeden Tag zu erheben. Hab ein gutes Postleben.

Recommended Posts

Code zum Senden von E-Mails basierend auf der Excel-E-Mail-Liste
Senden Sie eine E-Mail mit Python an Spushis Adresse
Senden Sie eine E-Mail mit Excel in Python
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [Python] zu ermöglichen
So erstellen Sie einfach eine Umgebung, in der Python-Code auf Jupyter ausgeführt werden kann, ohne die lokale Umgebung zu verschmutzen
Verkleide das Gras auf GitHub und versuche Ingenieur zu werden.
Der Weg zur Installation von Python und Flask auf einem Offline-PC
[boto3] Senden Sie eine E-Mail mit SES
Fügen Sie die Matplotlib-Figur in Excel ein
Hinweis: Senden Sie eine E-Mail mit Django
[Python] Mail mit Outlook senden
Geben Sie den Bericht mit Python aus DB in PDF aus, hängen Sie ihn automatisch an eine E-Mail an und senden Sie ihn
Ich habe versucht, die Liste der Drehzahlen des SSH-Anmeldeziels mit Python + openpyxl in einer Excel-Tabelle auszugeben.
Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [GAS / Python] zu ermöglichen
Was tun, wenn Sie mit Python keine E-Mail an Yahoo senden konnten?
Senden Sie E-Mails mit Python an eine bestimmte E-Mail-Adresse, ohne SMTP festzulegen
HTML-Mail mit Bild zum Senden mit Python
Entspricht die Zahl einer Ganzzahl?
Python Amateur versucht die Liste zusammenzufassen ①
Senden Sie eine E-Mail mit Amazon SES + Python
Ruft die EDINET-Codeliste in Python ab
Bei der Konvertierung von CSV in JSON mit Python bin ich auf einen Zeichencode gestoßen
Senden Sie eine direkte Liebes-E-Mail an einen neuen Benutzer, wenn ein neuer Benutzer dem Slack-Team beitritt