2013-06-28 82 views
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地址,這不是問題,我只需要將IP移到python工作的PC上。

回答

0

看來您正在使用遠程SMTP服務器來中繼您的電子郵件。例如,您將電子郵件提交給另一臺服務器,並由服務器爲您發送電子郵件。

在這種情況下,您的Python腳本運行的機器的IP地址在Received:標題中看到,它被您的Python腳本連接到的第一個中繼服務器添加。

如果您可以控制第一跳中繼(例如,它是您運行的Postfix服務器),則可以在服務器上執行一些技巧來刪除/審查該標頭。

相關問題