从电子邮件中删除额外标题

时间:2013-06-28 17:22:05

标签: python header smtp

我正在尝试创建一个好的电子邮件批量发件人。我写过这个函数:

def send(server_ip,username,password,recipient,count):
    sender = 'prova <' + username +'>'
    body = ''.join(tempMail)
    body = body.replace('#email#', recipient)
    body = body.replace('#random#', rand_string())
    subject = "Test smpt sender"
    headers = ["From: " + sender, "Subject: " + subject, "To: " + recipient, "MIME-Version: 1.0", "Content-Type: text/html"]
    headers = "\r\n".join(headers)
    try:
        server = smtplib.SMTP(server_ip)  
        server.login(username,password)
        server.sendmail(sender, recipient, headers + "\n\n" + body)
        code = server.ehlo()[0]
        server.quit()
        print "[+] Send to",recipient + " smpt :",server_ip
    except:
        listSMPT.pop(count)
        print "[-] Error send to " + recipient + '\t' + server_ip

但我有一个问题:我发送的所有电子邮件都在电子邮件标题中包含我的IP地址。 我需要一个不使用套接字或代理的解决方案! 是否可以在电子邮件标题中发送没有此数据的电子邮件? 如果我在标头中有SMTP的IP,那就不是问题了,我只需要删除IP到python工作的PC。

1 个答案:

答案 0 :(得分:0)

您似乎正在使用远程SMTP服务器来转发您的电子邮件。例如,您将电子邮件提交给另一台服务器,服务器会为您发送电子邮件。

在这种情况下,您在Received:标题中看到的运行Python脚本的计算机的IP地址将由您的Python脚本连接到的第一个中继服务器添加。

如果您可以控制第一跳中继(例如,它是您运行的Postfix服务器),您可以在服务器上执行一些技巧来删除/审查该标头。