Email body in utf-8

Asked

Viewed 37 times

1

I have a class that sends email, only it’s not sending with the accented characters.

Send class

    public boolean send() throws Exception {
            Properties props = _setProperties();

            if (!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") && !_subject.equals("") && !_body.equals("")) {
                Session session = Session.getInstance(props, this);

                MimeMessage msg = new MimeMessage(session);
                msg.setFrom(new InternetAddress(_from));

                InternetAddress[] addressTo = new InternetAddress[_to.length];
                for (int i = 0; i < _to.length; i++) {
                    addressTo[i] = new InternetAddress(_to[i]);
                }
                msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);

                //se tem de enviar cópia oculta para alguém
                if (_cco != null && _cco.length > 0) {
                    InternetAddress[] addressCco = new InternetAddress[_cco.length];
                    for (int i = 0; i < _cco.length; i++) {
                        addressCco[i] = new InternetAddress(_cco[i]);
                    }
                    msg.addRecipients(Message.RecipientType.BCC, addressCco);
                }

                msg.setSubject(_subject);
                msg.setSentDate(new Date());

                // corpo da mensagem
                BodyPart messageBodyPart = new MimeBodyPart();
                messageBodyPart.setText(_body);

                if (_isHtmlBody) {
                    messageBodyPart.setHeader("charset", "utf-8");
                    messageBodyPart.setHeader("content-type", "text/html");
                }
                _multipart.addBodyPart(messageBodyPart);
                msg.setContent(_multipart);

                // envia o email
                Transport.send(msg);

                return true;
            } else {
                return false;
            }
        }

E aqui é minha classe `enviarEmail` onde passo os dados

private void enviarEmail() {

        final String email = txtEmail;
        final String subject = "Expresso1002 - Mobile";
        if (rbVia1.isChecked())
            vVia = "1ª Via";
        if (rbVia2.isChecked())
            vVia = "2ª Via";
        final String nome = txtNomeCompleto.getText().toString();
        final String cpf = txtCpf.getText().toString();
        final String rg = txtRg.getText().toString();
        final String orgaoExpedidor = txtRg.getText().toString();
        final String endereco = txtEndereco.getText().toString();
        final String numero = txtNumero.getText().toString();
        final String bairro = txtBairro.getText().toString();
        final String cidade = txtCidade.getText().toString();
        final String cep = txtCep.getText().toString();
        final String telefone1 = txtTelefone1.getText().toString();
        final String telefone2 = txtTelefone2.getText().toString();
        final String emailRementente = txtEmailRemetente.getText().toString();
        final String body = "Via Selecionada: " + vVia + "</br></p>" +
                "Nome Completo: " + nome + "</br></p>" +
                "CPF: " + cpf + "</br></p>" +
                "RG: " + rg + "</br></p>" +
                "Orgão Expedidor: " + orgaoExpedidor + "</br></p>" +
                "Endereço Completo: " + endereco + "</br></p>" +
                "Nº: " + numero + "</br></p>" +
                "Bairro: " + bairro + "</br></p>" +
                "Cidade: " + cidade + "</br></p>" +
                "CEP: " + cep + "</br></p>" +
                "Telefone1: " + telefone1 + "</br></p>" +
                "Telefone2: " + telefone2 + "</br></p>" +
                "E-mail: " + emailRementente + "</br></p>";

        if (!isOnline()) {
            progresso.hide();
            //Toast.makeText(getContext(), "Não foi possível enviar e-mail, favor conectar a Internet!", Toast.LENGTH_LONG).show();

            LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(LAYOUT_INFLATER_SERVICE);
            View customToast = layoutInflater.inflate(R.layout.toast_faleconosco_error, null);
            Toast toast = new Toast(getContext());
            toast.setDuration(Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.setView(customToast);
            toast.show();

            //System.exit(0);
        } else {

            new Thread(new Runnable() {
                @Override
                public void run() {

                    Mail m = new Mail();
                    String[] toArr = {email};
                    m.setTo(toArr);
                    //m.setFrom("[email protected]"); //caso queira enviar em nome de outro
                    m.setSubject(subject);
                    m.setBody(body);

                    try {
                        //m.addAttachment("pathDoAnexo");//anexo opcional
                        m.send();
                    } catch (RuntimeException rex) {
                    }//erro ignorado
                    catch (Exception e) {
                        e.printStackTrace();
                        //System.exit(0);
                    }

                    getActivity().runOnUiThread(new Runnable() {
                        public void run() {
                            progresso.hide();

                            LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(LAYOUT_INFLATER_SERVICE);
                            View customToast = layoutInflater.inflate(R.layout.toast_faleconosco_sucesso, null);
                            Toast toast = new Toast(getContext());
                            toast.setDuration(Toast.LENGTH_LONG);
                            toast.setGravity(Gravity.CENTER, 0, 0);
                            toast.setView(customToast);
                            toast.show();

                            getActivity().getFragmentManager().popBackStack();
                        }
                    });
                }
            }).start();
        }
    }

It’s coming in my e-mail like this:

Via Selecionada: 1ª Via
Nome Completo: 
CPF: 
RG: 
Orgão Expedidor: 
Endereco Completo: 
Nº: 
Bairro: 
Cidade: 
CEP: 
Telefone1: 
Telefone2: 
E-mail: 

How to solve this.

1 answer

1


  • Blz, it worked out.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.