Heys! Escrevi este script em python para enviar uma determinada mensagem de email para uma lista de endereços de mail, mas penso que o script tem um problema a nivel de autentificação, penso que seja na forma como eh enviado o login e a senha... Já agora alguem conheçe algum server smtp que nao seja preciso fazer login para enviar mail??
#!/usr/bin/python
import smtplib
import sys
def inicio():
print """
**********************************************
**********************************************
***********Crypthief@gmail.com****************
**********************************************
**********************************************
"""
lista()
def lista():
print ""
print "Coloque a lista de mails no mesmo directorio do script com nome de lista.txt"
try:
lista=open("lista.txt", 'r+w')
print "A lista e composta por:" + `lista`
servidorsmtp()
except IOError:
print "O ficheiro nao foi encontrado..."
sys.exit()
def servidorsmtp():
print "Insira o endereco do servidor SMTP:"
servidor=raw_input("--->")
print "O servidor necessita de autentificacao?(y/n)?"
autentificacao=raw_input("--->")
if autentificacao=="y":
try:
s=smtplib.SMTP(servidor)
print "O servidor escolhido foi:" + `servidor`
print "Conectando..."
try:
servidor.connect(servidor,25)
print "Insira o utilizador"
utilizador=raw_input("--->")
print "Insira a senha:"
senha=raw_input("--->")
s.login(utilizador,senha)
msg()
except SMTPServerDisconnected:
print "Erro na autentificacao"
sys.exit()
except IOError:
print "Servidor nao encontrado"
inicio()
elif autentificacao=="n":
try:
print "O servidor escolhido foi:" + `servidor`
servidor.connect(servidor,25)
except SMTPServerDisconnected:
print "Ocorreu um erro..."
servidorsmtp()
else:
print "Tem de escolher entre y/n"
servidorsmtp()
def msg():
print "Coloque o mensagem.txt no mesmo directorio que este script"
print "Insira o remetente do mail:"
sender=raw_input("--->")
print "O remetente e:" + `remetente`
try:
mensagem=open('mensagem.txt', 'r').read()
print "Mensagem carregada..."
print ""
try:
s.sendmail(sender, lista, mensagem)
except SMTPException:
print "Problema no envio do mail."
except IOError:
print "File nao encontrado"
inicio()
Abraços,
Interessante sabem que vc coda em Python,
Ta ai um exemplo de envio de e-mail sem nenhum erro de autenticação:
# -*- coding: cp1252 -*-
# Send-mail - by Kratos
# Programador: Kratos
# Plataforma: Windows XP/ME/2000
import smtplib
try:
msg = {}
msg['From']="seuemail@servidor.com.br"
msg['To']="destinatario@servidor.com.br"
msg['Subject'] = "Assunto"
msg['Mensagem'] = open('MsgMailTxt.txt', 'r').read() # No mesmo diretório/Pasta
servidor = smtplib.SMTP() # Cria um objeto SMTP
smtpserver = "smtp.servidor.com.br" # String com o nome do servidor
print"Conectando..."
servidor.connect(smtpserver,25) # Conecta-se ao servidor
print"Autenticando..."
servidor.login("login","senha") # login e senha
print"Enviando..."
texto = "From: %s\r\nTo: %s\r\nSubject: %s\r\n%s" % (msg['From'], msg['To'], msg['Subject'], msg['Mensagem'])
servidor.sendmail(msg['From'], msg['To'], texto)
print"Desconectando..."
servidor.quit() # Desconecta-se do servidor
except Exception, e:
print"Erro: %s" % e # Caso tenha ocorrido algum erro
else:
print"Concluido!" # Caso não tenha ocorrido erro algum
Expero ter ajudado aew!!
Codei um send-mail com Interface Grafica,
Despois eu posto aqui o source pra vcs estudarem!!!
EDIT:
Para vc reutilizar o programa sem precisar inicialo novamente eu coloquei um loop nele:
# -*- coding: cp1252 -*-
# Send-mail - by Kratos
# Programador: Kratos
# Plataforma: Windows XP/ME/2000
import smtplib
def send():
try:
msg = {}
msg['From']="remetente@servidor.com.br"
msg['To']="destinatario@srvidorl.com"
msg['Subject'] = "Assunto"
msg['Mensagem'] = open('MsgMailTxt.txt', 'r').read() # Crie um
servidor = smtplib.SMTP() # Cria um objeto SMTP
smtpserver = "smtp.servidor.com.br" # nome do servidor
print"Conectando..."
servidor.connect(smtpserver,25) # Conecta-se ao servidor
print"Autenticando..."
servidor.login("login","senha") # login e senha
print"Enviando..."
texto = "From: %s\r\nTo: %s\r\nSubject: %s\r\n%s" % (msg['From'], msg['To'], msg['Subject'], msg['Mensagem'])
servidor.sendmail(msg['From'], msg['To'], texto)
print"Desconectando..."
servidor.quit() # Desconecta-se do servidor
except Exception, e:
print"Erro: %s" % e # Caso tenha ocorrido algum erro
else:
print"Concluido!\n" # Caso não tenha ocorrido erro algum
def main():
reload = "S" # Variavel
while reload == "S": # Loop de repetiçao
send()
reload = raw_input("\nDeseja enviar outro email (S/N): ")
main()
Tipo, em python se vc não colocar um loop ele fecha a janela mesmo que tenha tido sucesso na operação!!
Vlw!