Python을 사용하여 Excel에서 이메일 보내기 자동화
그래서 그녀를 위해 프로세스를 자동화하는 스크립트를 작성했습니다. 😃
Excel 파일에는 많은 정보가 포함되어 있지만 가장 중요한 정보인 이름, 이메일에 중점을 둡니다. 도시, 지불(예/아니오) 및 금액. 스크립트는 매우 간단하게 작동합니다. 우리는 "지불"된 셀을 가지고 있으며 클라이언트가 지불하지 않은 경우 개인화된 이메일을 보내 특정 금액을 빚지고 있음을 경고합니다. 스크립트는 지불하지 않은 모든 클라이언트에게 이메일을 보냅니다.
코드로 가자.
먼저
'xlrd
'를 설치하겠습니다. 'Xlrd
'는 Microsoft Excel(tm) 스프레드시트 파일에서 데이터를 추출하는 라이브러리입니다. 그 후 우리는 'smtplib
'를 가져올 것입니다. smtplib
모듈은 SMTP 또는 ESMTP 수신기 데몬이 있는 인터넷 시스템에 메일을 보내는 데 사용할 수 있는 SMTP 클라이언트 세션 개체를 정의합니다.필요한 모든 것을 가져오도록 합시다.
import xlrd
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
그런 다음 Excel 파일의 경로와 해당 파일에서 필요한 모든 정보(이름, 이메일, 도시, 유료, 금액)가 필요합니다.
path = "clients.xlsx"
openFile = xlrd.open_workbook(path)
sheet = openFile.sheet_by_name('clients')
나는 이메일, 금액, 돈을 빚진 고객의 이름을 세 가지 다른 목록에 넣었다. 그리고 그로부터 클라이언트가 지불되었는지 여부를 확인합니다.
mail_list = []
amount = []
name = []
for k in range(sheet.nrows-1):
client = sheet.cell_value(k+1,0)
email = sheet.cell_value(k+1,1)
paid = sheet.cell_value(k+1,3)
count_amount = sheet.cell_value(k+1,4)
if paid == 'No':
mail_list.append(email)
amount.append(count_amount)
name.append(client)
그 후에는 이메일을 보내는 데 집중해야 합니다.
email = '[email protected]'
password = 'pass'
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email, password)
색인을 가져와야 사람의 이름을 찾을 수 있습니다.
for mail_to in mail_list:
send_to_email = mail_to
find_des = mail_list.index(send_to_email)
clientName = name[find_des]
subject = f'{clientName} you have a new email'
message = f'Dear {clientName}, \n' \
f'we inform you that you owe ${amount[find_des]}. \n'\
'\n' \
'Best Regards'
msg = MIMEMultipart()
msg['From '] = send_to_email
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
text = msg.as_string()
print(f'Sending email to {clientName}... ')
server.sendmail(email, send_to_email, text)
그리고 마지막으로 모든 것이 정상인지 확인해야 합니다.
server.quit()
print('Process is finished!')
time.sleep(10)
그리고 모두 합치자.
import xlrd
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
path = "clients.xlsx"
openFile = xlrd.open_workbook(path)
sheet = openFile.sheet_by_name('clients')
mail_list = []
amount = []
name = []
for k in range(sheet.nrows-1):
client = sheet.cell_value(k+1,0)
email = sheet.cell_value(k+1,1)
paid = sheet.cell_value(k+1,3)
count_amount = sheet.cell_value(k+1,4)
if paid == 'No':
mail_list.append(email)
amount.append(count_amount)
name.append(client)
email = '[email protected]'
password = 'pass'
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email, password)
for mail_to in mail_list:
send_to_email = mail_to
find_des = mail_list.index(send_to_email)
clientName = name[find_des]
subject = f'{clientName} you have a new email'
message = f'Dear {clientName}, \n' \
f'we inform you that you owe ${amount[find_des]}. \n'\
'\n' \
'Best Regards'
msg = MIMEMultipart()
msg['From '] = send_to_email
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
text = msg.as_string()
print(f'Sending email to {clientName}... ')
server.sendmail(email, send_to_email, text)
server.quit()
print('Process is finished!')
time.sleep(10)
모두 감사합니다.
Reference
이 문제에 관하여(Python을 사용하여 Excel에서 이메일 보내기 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/stokry/automate-sending-emails-from-excel-with-python-3p42텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)