如何向我发送包含用户键入的信息的电子邮件?

f5emj3cl  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(328)

下午好,我正在尝试创建一个应用程序的一部分,让用户回答应用程序本身的一些问题,当点击按钮发送时,创建一个自动电子邮件正文,其中包含应用程序中填写的信息。例如:name:bernardo;因此,在电子邮件的正文中,“name:bernardo”将出现,而用户无需再次写入。目前,我只能将电子邮件捕获的文本设置为“name:null”,我不知道如何才能正确捕获应用程序中填写的信息。问题似乎要么在 public void pegarTexto 或在 emailIntent.putExtra (android.content.Intent.EXTRA_TEXT ,我肯定是做错了什么,但我无法辨认。如果有人能帮忙,我将不胜感激。如果问题不清楚,我请你在评论中留下如何改进的建议,因为我是初学者!代码如下:

public class DiagnosticoFragment extends Fragment {
    EditText editTextNome, editTextTelefone, editTextEmail, editTextEndereco, editTextBairro, editTextCidade, editTextEstado, editTextHorario, editTextComoConheceu, editTextConteMais;
    String nome, telefone, email, endereco, bairro, cidade, estado, horario, comoconheceu, contemais;

public DiagnosticoFragment() {
    // Required empty public constructor
}
public void pegarTexto(View view){
    editTextNome = view.findViewById(R.id.editTextNome);
    editTextTelefone = view.findViewById(R.id.editTextTelefone);
    editTextEmail = view.findViewById(R.id.editTextEmail);
    editTextEndereco = view.findViewById(R.id.editTextEndereco);
    editTextBairro = view.findViewById(R.id.editTextBairro);
    editTextCidade = view.findViewById(R.id.editTextCidade);
    editTextEstado = view.findViewById(R.id.editTextEstado);
    editTextHorario = view.findViewById(R.id.editTextHorario);
    editTextComoConheceu = view.findViewById(R.id.editTextComoConheceu);
    editTextConteMais = view.findViewById(R.id.editTextConteMais);

    nome = editTextNome.getText().toString();
    telefone = editTextTelefone.getText().toString();
    email = editTextEmail.getText().toString();
    endereco = editTextEndereco.getText().toString();
    bairro = editTextBairro.getText().toString();
    cidade = editTextCidade.getText().toString();
    estado = editTextEstado.getText().toString();
    horario = editTextHorario.getText().toString();
    comoconheceu = editTextComoConheceu.getText().toString();
    contemais = editTextConteMais.getText().toString();

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_diagnostico, container, false);
    Button btnSendEmail = view.findViewById(R.id.btnSendEmail);

    btnSendEmail.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // cria um intent
            Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
            // define o email especifico pre definido
            String[] recipients = new String[]{
                    "contato@metaconsultoria.com"
            };
            // insere o email no extra
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
            // define um assunto
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Possível projeto.");
            // define o conteúdo do email
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Nome: " + nome + "Telefone: " + telefone + "E-mail: " + email + "Endereço: " + endereco + "Bairro: " + bairro
                    + "Cidade: " + cidade + "Estado: " + estado + "Horário: " + horario + "Como conheceu a Meta: " + comoconheceu + "Conte mais: " + contemais );
            // definido o tipo
            emailIntent.setType("text/plain");
            // inicia o intent
            startActivity(Intent.createChooser(emailIntent, "Enviar email..."));
        }
    });

    return view;
}
}
mnowg1ta

mnowg1ta1#

嘿,
参考这个我用它来给自己发邮件

private void sendMessage(String etContent, String etHeader)
    {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("message/rfc822");
        intent.putExtra(Intent.EXTRA_EMAIL , new String[]{"email@gmail.com"});
        intent.putExtra(Intent.EXTRA_SUBJECT , etHeader);
        intent.putExtra(Intent.EXTRA_TEXT , etContent);
        intent.setType("text/plain");
        intent.setPackage("com.google.android.gm");
        try {
            startActivity(Intent.createChooser(intent , "Email via"));
            Log.i("Finished sending email...", "");
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
        }

    }

比较一下,看看哪里不对!!

rpppsulh

rpppsulh2#

我建议使用f10逐个地进入每一行,以确定值为null的位置。不过,您需要在执行此操作之前设置一个断点。

相关问题