A função anterior de envio de email funcionou no Windows (desktop), qdo enviei para o servidor (linux SLES10), retornava erro que não encontrava o módulo MIMEMultipart.
Perceba o nome do arquivo, o mesmo do módulo no Python, conflitando e ocasionando o erro.
Traceback (most recent call last):
File "./email.py", line 4, in ?
import smtplib File "/usr/lib/python2.4/smtplib.py", line 49, in ?
from email.base64MIME import encode as encode_base64
File "/srv/trabalho/informatica/desenvolvimento/sislinux/amadeus/SWNF/email.py", line 5, in ?
from email.MIMEMultipart import MIMEMultipart
ImportError: No module named MIMEMultipart
Cheguei até a pensar que não havia instalado o módulo. Mas pesquisando na internet deparei com o site que solicitou a verificação do nome do módulo.
Nome do arquivo alterado e: Bingo, funcionou!
SEJA BEM VINDO!!!!
Tecnologia da Informação.
Informações, artigos, dicas, desenvolvimento, sistema operacional e hardware.
Além de outros interesses que tenho no meu cotidiano.
Mostrando postagens com marcador email. Mostrar todas as postagens
Mostrando postagens com marcador email. Mostrar todas as postagens
sábado, novembro 14, 2009
quarta-feira, novembro 11, 2009
Envio de email autenticado e com anexo em Python
Posto abaixo um exemplo que funcionou:
retirado de: http://eloiribeiro.wordpress.com/2009/05/25/como-enviar-um-correio-electronico-com-python/
# -*- coding: utf-8 -*-
import os
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
def enviar_correio(de, senha, smtp, para, assunto, mensagem, anexo):
msg = MIMEMultipart()
msg['To'] = para
msg['Subject'] = assunto
msg['From'] = de
msg['Pass'] = senha
msg['SMTP'] = smtp
if mensagem != '':
msg.attach(MIMEText(mensagem))
part = MIMEBase('application', 'octet-stream')
if anexo != '':
part.set_payload(open(anexo, 'rb').read())
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(anexo))
msg.attach(part)
Encoders.encode_base64(part)
mailServer = smtplib.SMTP(msg['SMTP'], 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(msg['From'], msg['Pass'])
mailServer.sendmail(msg['From'], para, msg.as_string())
mailServer.close()
print 'Correio enviado'
# exemplo para enviar correio sem mensagem e sem anexo
# enviar_correio('correio_destino@servidor.com', 'assunto', '', '')
# exemplo para enviar correio com mensagem e com anexo
# enviar_correio('correio_destino@servidor.com', 'assunto', 'mensagem', '/home/utilizador/anexo.pdf')
enviar_correio('login@dominio.com.br','senha','smtp.dominio.com.br','destino@dominio.com.br','Envio de email em Python','Aqui a mensagem do email','/caminho/arquivo.ext')
retirado de: http://eloiribeiro.wordpress.com/2009/05/25/como-enviar-um-correio-electronico-com-python/
Marcadores:
aba-tecnologia,
anexo,
email,
python
Assinar:
Postagens (Atom)