使用场景
当使用者需要群发内容框架一致而只有少许内容不同的邮件时,会因为频繁地修改琐碎的细节而浪费大量时间,这样一来一个可供配置和扩展的自动邮件程序就十分有必要。
比如说我作为课程助教需要发送邮件给每个考试了的同学他的课程成绩,那么邮件中不同的地方就只有接收者的名字、学号以及成绩。
这些信息通常记录在Excel表中,一个自动邮件发送程序应当可以匹配不同的姓名、学号对应的成绩。这样一来,就可以将邮件发送者从繁琐而无意义的体力劳动中解放出来,而且减少了成绩输入错误这种可能情况的发生。
基本框架
以下是automail.py程序的基本代码:
# coding: utf-8
# author: Meditator_hkx
# Test passed with simple information
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import Header
sender = 'xyz@163.com' # sender mail info, should be real
receiver = ['abc@163.com', 'abc@qq.com'] # Receiver mail info set, should be real
#### Basic Configure Information ####
user_name = sender # sender account name, should be correct
pwd = '**********' # Password corresponding to the sender account name, should be correct
host_addr = 'smtp.163.com' # The mail server host name, for QQ, it should be 'smtp.qq.com' , when you use different mail servers, please offer corresponding host names
port_num = 25 # Server port, it should be 465 for QQ, when you use different mail servers, please offer corresponding server ports
############################
#### Email Header Information ####
msg = MIMEMultipart('mixed') # Message type, always "mixed"
subject = 'Auto email test!'
msg['Subject'] = subject # Subject of you email
msg['From'] = sender # Sender email info
msg['To'] = ";".join(receiver)# Receiver email(s) info
msg['Date']='2999-12-31' # Sending Time
############################
#### Main Body ####
# In this part you can write