python用QQ企业邮箱发邮件,发件箱为什么看不到发送的邮件记录?

Qiaoping_Hu 发布于 2015/10/15 14:57
阅读 2K+
收藏 0

我用python写了一个发邮件的脚本,主要功能是密送群发邮件,发送列表从excel表格中读取。遇到一个问题是这个脚本运行起来虽然可以成功发邮件,但是网页登录QQ企业邮箱看不到发送记录,我的QQ企业邮箱已经设置了  邮件自动保存到“已发送”  。但是很奇怪的是,我用QQ个人邮箱发送就可以看到发送记录。想问一下这是为什么?怎样做才能让QQ企业邮箱中也能看到python脚本的发送记录呢?

系统: win7 64位

python 2.7.8

代码


import os  
import smtplib  
import mimetypes  
import xlrd 
from email.MIMEMultipart import MIMEMultipart  
from email.MIMEBase import MIMEBase  
from email.MIMEText import MIMEText  
from email.MIMEAudio import MIMEAudio  
from email.MIMEImage import MIMEImage  
from email import encoders
from email.utils import parseaddr, formataddr
from email.header import Header
from email.Encoders import encode_base64
from email.utils import COMMASPACE


####################邮件主题、正文内容、邮箱列表文件路径、表格Email列名#################################
subject = u'工作简报第144期'
content_file_path = u"E:\send_Dian.txt".encode("gb2312")
path = u"E:\测试邮箱列表.xls".encode("gb2312")
email_name = u'E-mail Address'
content_file = open(content_file_path)
content = content_file.read()


def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr(( \
        Header(name, 'utf-8').encode(), \
        addr.encode('utf-8') if isinstance(addr, unicode) else addr))


def sendMail(gmailUser, gmailPassword, subject, text, other):   
    recipient = []  
    cmail = []
    
    msg = MIMEMultipart()  
    msg['From'] = _format_addr(u'Newsletter Dian <%s>' % gmailUser) 
    msg['To'] = COMMASPACE.join(recipient)
    msg['Cc'] = COMMASPACE.join(cmail)
    msg['Subject'] = Header(subject, 'utf-8').encode()  
    msg.attach(MIMEText(content, 'plain', 'utf-8'))  
  
  
    mailServer = smtplib.SMTP('smtp.qq.com', 25)  
    mailServer.ehlo()  
    mailServer.starttls()  
    mailServer.ehlo()  
    mailServer.login(gmailUser, gmailPassword)  
    mailServer.sendmail(gmailUser, recipient+cmail+other, msg.as_string())  
    mailServer.close()  
  
    print "Sent  email  to  ", other 
    
def OneUsrSendMail(gmailUser, gmailPassword, sheetNumFrom, sheetNumTo):
    other = []
    emailCnt = 0
#other数组里面是当前密送邮件列表,emailCnt记录提取到该密送邮件中的第几个邮箱
    book = xlrd.open_workbook(path)
    for sheetmun in range(sheetNumFrom-1, sheetNumTo):                            #一共有23张表格,则应该0=<range<24
      sh = book.sheet_by_index(sheetmun)
      nrows = sh.nrows
      clox = sh.row_values(0).index(email_name)             #根据每张表格第一行的数据取出E-mail Address所对应的列数
      for i in range(1, nrows):
        cell_value = sh.cell_value(i,clox)
        other.append(cell_value)                            #依次取出每一行的E-mail Address,压入密送邮箱地址数组other
        emailCnt = emailCnt+1
        if emailCnt == 40:                                  #QQ邮箱能否收到邮件,设定每40个邮箱地址发送一份密送邮件
            sendMail(gmailUser, gmailPassword, subject, content, other)    #发送带附件的邮件并将计数清零,重新发送新的密送邮件
            emailCnt = 0
            other = []
    if emailCnt != 0:   #最后的一封有可能不是40个地址一起发送的,要补充上去
        sendMail(gmailUser, gmailPassword, subject, content, other)


OneUsrSendMail('xxxx@qqqiye.com', 'passwd', 1, 3)

加载中
0
南湖船老大
南湖船老大

你没找对,看图,在邮箱设置-账户里面,多找找

Qiaoping_Hu
Qiaoping_Hu
终于找到了,谢谢你
hyjiacan
hyjiacan
咦 果然有。。。 在客户端设置里面。。 上次没有,我还问TX客服。。。那人说代码发送的都不能保存。。
1
Feng_Yu
Feng_Yu
和代码无关,找找邮箱设置,有一项就是使用smtp发送的邮件保存到已发送
Qiaoping_Hu
Qiaoping_Hu
只找到一个发信设置说是自动存到发送信箱,已经勾选
0
张不凡
张不凡
把自己加到收件人里吧- -
Qiaoping_Hu
Qiaoping_Hu
不行,只能收到邮件内容,看不到发给谁了。因为这是别人订阅的信息,所有人必须在密送邮件列表中,大家彼此看不到也不应该看到彼此。
0
hyjiacan
hyjiacan
上次问过TX的客服,说是通过程序发送的邮件,都是没有记录的。
Qiaoping_Hu
Qiaoping_Hu
用同样的代码
Qiaoping_Hu
Qiaoping_Hu
不是啊,我用个人的QQ邮箱就会有记录
返回顶部
顶部