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.
Bereiten Sie eine Datei mit dem Namen "maillist.xlsx" vor, wie unten gezeigt.
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()
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