>>> import smtplib
>>> server = smtplib.SMTP('gmail-smtp-in.l.google.com', 25)
>>> para = 'v2.igor@gmail.com'
>>> de = 'ninguem@nada.com'
>>> msg = '''
... From: ninguem@nada.com
... To: v2.igor@gmail.com
... Subject: Nao eh nada nao
... Aqui eh o corpo da mensagem
... '''
>>> server.sendmail(de, para, msg)
{}
>>> server.close()
A classe SMTP do módulo smtplib serve para se conectar com um servidor de e-mails, caso você tenha um servidor de email rodando localmente, basta usar "localhost". E 25 é a porta padrão do SMTP.
A mensagem de e-mail tem um formato padrão que está definido aqui. Mas os campos mais comuns são:
To: E-mail dos destinatários
Cc: E-mail das pessoas que devem receber uma cópia da menssagem
From: E-mail do criador da mensagem
Subject: Assunto da mensagem
Date: Data e hora em que a mensagem foi enviada
Como se pode perceber, o cabeçalho das mensagens fica no formato Chave: valor... O unico dado que não tem uma chave é o corpo da mensagem em si. A classe Message do módulo email ajuda a formatar essa mensagem:
>>> from email.Message import Message
>>> msg = Message()
>>> msg['Subject'] = 'Assunto do email'
>>> msg.set_payload('Aqui eh o corpo da mensagem')
>>> print msg
From nobody Sun Dec 2 16:29:56 2007
Subject: Assunto do email
Aqui eh o corpo da mensagem
Os valores do cabeçalho podem ser adicionados como na sintaxe de um dicionário do Python, e o método set_payload() serve para adicionar a mensagem.
Ah, e caso no exemplo acima o email não chegue na sua caixa de entrada do gmail, não se esqueça de verificar nos "Spams".
7 comentários:
Muito boa a dica!
Só ficou faltando mostrar como enviar e-mails com anexos.. ou mesmo recebendo os dados a partir de outra fonte, pelo menos o conteúdo da mensagem (por exemplo, de um arquivo)
É importante pq aí dá pra fazer um script que envie como anexo ou no conteúdo da msg mesmo a saída de um script de backup, por exemplo..
Na hora que executei o seu script ele falou que não pode importar a lib smtplib, então fui procurar para instalala mas não achei.
você tem alguma dica.
Obrigado
Opa Rick,
A smtplib é padrão. Talvez tenha um problema com a instalação do Python. A não ser que você esteja usando uma versão realmente antiga (tipo 1.5). No meu Ubuntu ela se está em:
/usr/lib/python2.5/smtplib.py
Que estranho, porque estou usando o Ubuntu 7.10 e deu um exxo catastrofico de umas 30 linhas, mas a orimeira parte éra que não conseguia importar a LIB.
Vou estudar um pouco o assunto mais tarde.
Obrigado!
é ERRO e não exxo desculpa.
Tentei usar, mas quando uso o anexo recebo estes erros:
ANEXO = "Teste"
att = "C:\Pasta\" & (ANEXO) & ".pps"
k.AttachFile.Add = att
Unexpected Python Error: exceptions.TypeError: AttachFile() takes exactly 2 arguments (1 given)
Ou
ANEXO = "Teste"
att = "C:\Pasta\" & (ANEXO) & ".pps"
k.AttachFile = att
O objeto não aceita esta propriedade ou método
Existe alguma forma de mandar este anexo.
Meu email miltonmmjr@hotmail.com
poxa... no meu pc deu esse erro aqui...
SMTPDataError: (550, "5.7.1 [201.78.120.214] The IP you're using to send mail is not authorized to\n5.7.1 send email directly to our servers. Please use the SMTP relay at your\n5.7.1 service provider instead. Learn more at http://mail.google\n5.7.1 .com/support/bin/answer.py?answer=10336 9si1623413qyk.156")
como posso resolve-lo?
abracos!
Postar um comentário