PDA

Visualizza la versione completa : Mail: forward e risposta automatica


mxa
22-12-2005, 23:15
Ho una casella di posta su un server dell'universitÓ, che ora non uso pi¨, ma c'Ŕ la possibilitÓ che qulache volta mi arrivino delle mail, ad esempio dal mio ex relatore.
Ho l'accesso ad una macchina interna all'universitÓ via ssh, dove solitamente mi collego e leggo la posta con pine, oppure tramite web mail. Quello che vorrei fare Ŕ:
- rispondere automaticamente a chi mi scrive a quella casella di posta dicendo di usare un altro indirizzo
- eventualmente anche inoltrare le mail ad un altro mio indirizzo.

Come potrei fare?

mxa
22-12-2005, 23:33
MMM...ho visto dell'esistenza di vacation. L'ho anche abilitato, ma non sembra funzionare. Deve esserci in esecuzione qualche demone perchŔ vada? come faccio a verificare?

alvinet
23-12-2005, 09:12
MTA?

mxa
23-12-2005, 09:25
ovvero?

billiejoex
24-12-2005, 01:02
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.


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

GiorgioM
24-12-2005, 03:15
Originariamente inviato da mxa
Ho l'accesso ad una macchina interna all'universitÓ via ssh

Come potrei fare?

99% l'account di posta allora corrisponde ad un account di sistema, di conseguanza usa il file ~/.forward

mxa
24-12-2005, 10:44
Originariamente inviato da GiorgioM
99% l'account di posta allora corrisponde ad un account di sistema, di conseguanza usa il file ~/.forward

Provato, ma non funziona!

Grazie billiejoex...ehm...come lo compilo??

Loading