1

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

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,那没问题,我只需要删除 python 工作的 PC 的 IP。

4

1 回答 1

0

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

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

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

于 2017-10-18T10:13:19.797 回答