Gia che volevo vedere i moduli di Python riguardo smtp e pop3 ho preso il tuo problema come "esercizio" e ti ho fatto questo script. Puoi affiancarlo a crond per farlo eseguire ogni tot tempo.
- Scarica le mail dal tuo vecchio indirizzo
- Per ogni mail trovata ti manda una copia al tuo nuovo indirizzo
- Per ogni maail trovata manda un messaggio al mittente che notifica che hai cambiato indirizzo.
codice:
import poplib
import smtplib
import string
NUOVO_INDIRIZZO = "compila"
VECCHIO_INDIRIZZO = "compila"
USER = "compila"
PASS = "compila"
VECCHIO_SERVER_POP = "compila"
VECCHIO_SERVER_SMTP = "compila"
def notify_to_sender(sender):
HOST = VECCHIO_SERVER_SMTP
FROM = VECCHIO_INDIRIZZO
TO = sender
SUBJECT = "Notifica di cambio mail"
BODY = """
Caro %s, il mio indirizzo e' cambiato.
Non contattarmi piu' su [vecchio indirizzo]
ma su [nuovo indirizzo].
Saluti""" %sender
body = string.join((
"From: %s" % FROM,
"To: %s" % TO,
"Subject: %s" % SUBJECT,
"",
BODY), "\r\n")
server = smtplib.SMTP(HOST)
server.sendmail(FROM, [TO], body)
server.quit()
def forward_to_me(sender, object, text):
HOST = VECCHIO_SERVER_SMTP
FROM = VECCHIO_INDIRIZZO
TO = NUOVO_INDIRIZZO
SUBJECT = "[FORWARING FROM:%s] %s" %(sender, object)
BODY = text
body = string.join((
"From: %s" % FROM,
"To: %s" % TO,
"Subject: %s" % SUBJECT,
"",
BODY), "\r\n")
server = smtplib.SMTP(HOST)
server.sendmail(FROM, [TO], body)
server.quit()
def download_mails(msg):
(header, msg, octets) = a.retr(msg)
x = 0
for i in msg:
x += 1
if "From: " in i:
sender = i[6:]
if ('<' in sender) and ('>' in sender):
sender = sender[sender.find('<')+1:sender.find('>')]
if "Subject: " in i:
subject = i[9:]
if i == '':
break
text = ''
for i in range(x,len(msg)):
text += msg[i]
text += '\n'
return sender, subject, text
a = poplib.POP3(VECCHIO_SERVER_POP)
a.user(USER)
a.pass_(PASS)
a.list()
(numMsgs, totalSize) = a.stat()
for i in range(1, numMsgs + 1):
sender, object, text = download_mails(i)
forward_to_me(sender, object, text)
notify_to_sender(sender)
Fammi sapere come funge