python USES both smtp and outlook examples for sending emails

  • 2020-06-03 06:58:47
  • OfStack

smtp is the smtp server that calls mailbox 163 directly and needs to set under 1 in mailbox 163. outlook send is Python's direct call to win32. The caller, outlook, sends the message directly.


import win32com.client as win32 
import xlrd 
outlook = win32.Dispatch('outlook.application') 
mail = outlook.CreateItem(0) 
receivers = ['Yutao.A.Wang@alcatel-sbell.com.cn'] 
mail.To = receivers[0] 
mail.Subject ='test1' 
workbook = xlrd.open_workbook('E:\\kpi excel\\00_summary.xls') 
mySheet = workbook.sheet_by_index(0) 
 
nrows = mySheet.nrows 
content = [] 
for i in range(nrows): 
 ss = mySheet.row_values(i) 
 content.append(ss) 
 print(content) 
 Truecontent =str(content) 
 
mail.Body = Truecontent 
mail.Attachments.Add('E:\\kpi excel\\00_summary.xls') 
mail.Send() 

smtp sends emails


import smtplib 
from email.mime.text import MIMEText 
mail_host = 'smtp.163.com' 
mail_user = '18298268658' 
mail_pass = 'cat123' 
sender = '18298268658@163.com' 
receivers = ['619538553@qq.com'] 
 
message = MIMEText('content','plain','utf-8') 
message['Subject'] = 'title' 
message['From'] = sender 
message['To'] = receivers[0] 
 
try: 
 smtpObj = smtplib.SMTP() 
 smtpObj.connect(mail_host,25) 
 smtpObj.login(mail_user,mail_pass) 
 smtpObj.sendmail( 
  sender,receivers,message.as_string()) 
 smtpObj.quit() 
 print('success') 
except smtplib.SMTPException as e: 
 print('error',e) 

Related articles: