Here, my code of sendmail
If Somebody had a doubt please contact me?
[EMAIL PROTECTED]
# -*- coding: cp1252 -*-
## Faz o import das bibliotecas necessarias.
import mimetypes
import os.path
import smtplib
import sys
from email.Encoders import encode_base64
from email.MIMEAudio import MIMEAudio
from email.MIMEBase import MIMEBase
from email.MIMEImage import MIMEImage
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
## Funcao para criar lista baseada nos argumentos
## Isto vai ser utilizado para os destinatarios
## como para os arquivos anexados.
def cria_lista(arg):
lista=[]
for elemento in arg.split():
lista.append(elemento)
return lista
##Faz o anexo dos arquivos a mensagem
##os parametros � o caminho completo do arquivo e o nome do arquivo
##para fazer o anexo.
def getAttachment(path, filename):
ctype, encoding = mimetypes.guess_type(path)
if ctype is None or encoding is not None:
ctype = 'application/octet-stream'
maintype, subtype = ctype.split('/', 1)
fp = open(path, 'rb')
if maintype == 'text':
attach = MIMEText(fp.read(),_subtype=subtype,
_charset="iso-8859-15")
elif maintype == 'message':
attach = email.message_from_file(fp)
elif maintype == 'image':
attach = MIMEImage(fp.read(),_subtype=subtype)
elif maintype == 'audio':
attach = MIMEAudio(fp.read(),_subtype=subtype)
else:
print maintype, subtype
attach = MIMEBase(maintype, subtype)
attach.set_payload(fp.read())
encode_base64(attach)
fp.close
attach.add_header('Content-Disposition',
'attachment',filename=filename)
return attach
## Verifica se o primeiro parametro passado para o programa e --h
## chama o help.
if sys.argv[1] == '--h' :
print 'sendmail <servidor de email> <From> <To> [Assunto]
[Mensagem] [Anexos] [Arquivo de log]\n'
print '<servidor>: Servidor SMTP de email.\n'
print '<From>: Quem esta enviando o email. (Ex.: "[EMAIL PROTECTED]")
\n '
print '<To>: lista de destinatarios do email. (Ex.:
"[EMAIL PROTECTED] [EMAIL PROTECTED]") \n'
print '[Assunto]: Assunto do email \n'
print '[Mensagem]: Mesangem do corpo do email \n'
print '[Anexos]: Lista de arquivos anexos
(Ex:"C:\\relatorios\\rel1.pdf C:\\relatorios\\rel2.pdf") \n'
print '[Arquivo de log] Diret�rio onde ser� gerado o log da
aplica��o ex: "C:\\temp\\sendmail.log"'
print 'Ex: sendmail "smtp.fx.com.br" "[EMAIL PROTECTED]"
"[EMAIL PROTECTED] [EMAIL PROTECTED]" "teste de email"
"isto e apenas um teste" "C:\\temp\\rel2.pdf C:\\temp\\rel1.pdf"
"C:\\temp\\sendmail.log" \n'
print 'Par�metros entre chaves[] s�o opcionais, os outros
par�metros s�o obrigat�rios'
else:
msg = MIMEMultipart()
## o 1� parametro e o servidor SMTP.
servidor_smtp=sys.argv[1]
## o 2� parametro e quem esta enviando o anexo.
msg['From']=sys.argv[2]
## o 3� parametro e a lista de destinat�rios.
toaddrs=cria_lista(sys.argv[3])
## o 4� parametro e o assunto da mensagem.
msg['Subject'] = sys.argv[4]
## o 5� parametro e a mensagem do corpo do email.
mensagem=sys.argv[5]
## o 6� parametro cria a lista de arquivos.
arquivos=cria_lista(sys.argv[6])
## o 7� parametro especifica onde ser� gerado o arquivo de log
dir_log=sys.argv[7]
##Verifica se � vazio o arquivo
if dir_log == "":
dir_log="C:\\temp\\sendmail.log"
## executa um loop na lista de arquivos
## e chama a funcao que anexa os arquivos.
for arq in arquivos:
path = arq
filename = os.path.basename(arq)
attach = getAttachment(path, filename)
msg.attach(attach)
## texto do corpo do email que sera anexado.
text=MIMEText(mensagem,_charset="iso-8859-15")
msg.attach(text)
## Busca o servidor de SMTP e faz a conexao.
try:
server = smtplib.SMTP(servidor_smtp)
## Faz o envio do email.
server.sendmail(msg['From'],toaddrs,msg.as_string())
## Fecha a conex�o com o servidor.
server.quit()
except Exception, e:
arq=open(dir_log,'a')
print >> arq, "Falha no envio da mensagem de email, n�o foi
possivel a conex�o ao servidor %s" % servidor_smtp
arq.close
--
http://mail.python.org/mailman/listinfo/python-list