2013-06-28 2 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-адрес в заголовках электронной почты. Мне нужно решение без использования сокетов или прокси! Можно ли отправлять электронные письма без этих данных в заголовках электронной почты? Если у меня есть IP-адрес SMTP в заголовках, это не проблема, мне нужно удалить только IP-адрес на ПК, где работает python.

ответ

0

Кажется, что вы используете удаленный SMTP-сервер для ретрансляции вашей электронной почты. Например, вы отправляете свою электронную почту на другой сервер, и сервер отправляет вам электронное письмо.

В этом случае IP-адрес вашего компьютера, на котором запущен скрипт Python, отображается в заголовке Received:, который добавлен этим самым первым сервером ретрансляции, к которому подключается ваш скрипт Python.

Если вы можете управлять этим ретранслятором первого этапа (например, это сервер Postfix, который вы запускаете), вы можете сделать некоторые трюки на сервере, чтобы удалить/подвергнуть цензуре этот заголовок.