Pessoal,
Antes de tudo vou pedir uma desculpas pela pergunta. Dei uma fuçada aqui do no fórum e não encontrei a solução e as mesmas que foram aplicadas em casos que tem alguma similaridade com o meu, não foram os bastantes para a resolução do meu problema.
Basicamente tenho que mandar um formulário para um e-mail
Estou utilizando o flask-mail para fazer a parte do envio de email com os dados que recebo no formulário.
Dentro do meu projeto tenho o seguinte:
app = Flask(__name__)
app.config.from_object(__name__)
app.config.update(dict(
DEBUG = True,
MAIL_SERVER = 'smtp.google.com',
MAIL_PORT = 465,
MAIL_USE_TLS = True,
MAIL_USE_SSL = True,
MAIL_USERNAME = 'em...@gmail.com',
MAIL_PASSWORD = 'senha',
))
mail = Mail(app)
@app.route('/send-contact', methods=['POST'])
def add_entry():
nome = request.form['nome']
sobrenome = request.form['sobrenome']
cargo = request.form['cargo']
empresa = request.form['empresa']
endereco = request.form['endereco']
cidade = request.form['cidade']
estado = request.form['estado']
ddd = request.form['ddd']
telefone = request.form['telefone']
email = request.form['email']
mensagem = request.form['mensagem']
msg = Message("Empresa :: Contato pelo formulário", sender="con...@empresa.com.br", recipients=["pes...@gmail.com"])
msg.html = (u'<ul><li>Nome: %s</li><li>Sobrenome: %s</li><li>Cargo: %s</li><li>Empresa: %s</li><li>Cidade: %s</li><li>Endereco: %s</li><li>Estado: %s</li><li>DDD: %s</li><li>Telefone: %s</li><li>E-mail: %s</li><li>Mensagem: %s</li></ul>' % (nome, sobrenome, cargo, empresa, endereco, cidade, estado, ddd, telefone, email, mensagem,))
mail.send(msg)
logging.info('saiu da classe teste')
return render_template('contato-enviado.html')
Consigo receber os dados na outra ponta passados pelo formulário porém ao tentar envia-los por e-mail é apresentado o seguinte erro:
"UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 69: ordinal not in range(128)"
Juro que procurei um bocado, talvez vocês digam que não foi o suficiente, e mesmo assim não consegui encontrar a solução.
O mais engraçado, caso tenha alguma, e que quando dou um print da mensagem no log ou até mesmo no console, ela sai normal, com a respectiva acentuação e etc.
Quando seto a mensagem estaticamente ou seja, ao invés de mensagem = request.form['mensagem'] coloco mensagem = 'minha mensagem com acentuação' ele consegue enviar normalmente.
Alguém poderia da uma ajuda para o casa.
Desde já agradeço a atenção.