def mail():
import os
import pandas as pd
import smtplib
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import formatdate
from email.mime.multipart import MIMEMultipart
from email import encoders
from PyQt5.QtCore import QDate, Qt
path = 'C:/Users/user/Desktop/pdf/'
contact = 'con1.xlsx'
df = pd.read_excel(str(path)+contact, endcoding ='utf8')
df.set_index('unyong', inplace = True)
now = QDate.currentDate()
filenm = [f for f in os.listdir(path) if f.endswith('.pdf')]
unyong_nm = []
for w in filenm:
a = w.find('_')
b = w.rfind('_')
unyong_nm.append(w[a+1:b])
unyong_nm = list(set(unyong_nm))
for i in range(0,len(unyong_nm)):
send_from = 'ss@ddd'
recipients = df.loc[unyong_nm[i],'email']
send_to = ",".join(recipients)
attach = [s for s in filenm if s.find(unyong_nm[i]) >-1 ]
username = 'sss@ssss'
password = 'sss'
subject = ('111'+now.toString('yyyy.MM')+'_'+unyong_nm[i]+str(i+1))
text = ('hi')
msg = MIMEMultipart()
msg['From'] = send_from
msg['To']= send_to
msg['Subject'] = subject
msg['Date']=formatdate(localtime=True)
filename_match = [s for s in filenm if s.find(unyong_nm[i]) >-1 ]
for file in filename_match:
part =MIMEBase('application','octet-stream')
part.set_payload(open(str(path)+file, 'rb').read())
encoders.encode_base64(part)
part.add_header('Content-Disposition','attachment', filename =file)
msg.attach(part)
msg.attach(MIMEText(text))
mailServer = smtplib.SMTP("smtp.sssss.com", 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(username,password)
mailServer.sendmail(send_from, send_to, msg.as_string())
mailServer.close()
привет, у меня проблема с электронным письмом с приложением для выписки.
результаты нижеуказанного def mail (), несколько писем было отправлено одному человеку. (<- это ошибка) Я хочу отправить каждый указанный c получатель с указанными c несколькими вложениями только один раз </p>
, почему несколько писем отправлены с различным количеством вложений одному человеку. Получатель имеет 2 электронных письма с 1 вложением и одновременно 2 вложениями. Я хочу отправить электронное письмо с двумя вложениями, пожалуйста, помогите мне.
* CF) путь к файлам: ['2221_sss_love.pdf', '2221_sss_happy.pdf', '2221_ddd_sad.pdf', '2221_ddd_lucky.pdf ',' con1.xlsx ']
* результат unyong_nm = [' sss ',' ddd '] filenm = [' 2221_sss_love.pdf ',' 2221_sss_happy.pdf ',' 2221_ddd_sad.pdf ', '2221_ddd_lucky.pdf']
* CF) con1.xlsx file contenxt:
unyong email sss 111@aaa sss 777@bbb ddd 666@sss ddd 444@ccc