>source

INTENT.ACTION_SEND 또는 ACTION.SENDTO를 사용하고 재고 Sony Xperia Active 이메일 클라이언트를 사용하든 상관없이 이메일 Intent를 보내려고 할 때 제목과 수신자는 정상적으로 표시되지만 표준을 제외하고 본문이 비어 있습니다. 클라이언트가 붙여넣은 댓글입니다. 내 Samsung Galaxy Note 2에서는 동일한 code가 매력처럼 작동합니다.

if(mPrefs.getBoolean("alternative_email_client", false)){
        Intent send= new Intent(Intent.ACTION_SENDTO);
        String uriText= "mailto:" + Uri.encode(emailStrings[6]) +
               "?subject=" + Uri.encode("The subject") +
               "&
body=" + Uri.encode(emailBody);
        Uri uri= Uri.parse(uriText);
        send.setData(uri);
        startActivity(Intent.createChooser(send, "Email verschicken"));
    } else {
        Intent send= new Intent(Intent.ACTION_SEND);
        send.putExtra(Intent.EXTRA_EMAIL, emailStrings[6]);
        send.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
        send.putExtra(Intent.EXTRA_TEXT, emailBody);
        startActivity(Intent.createChooser(send, "Email verschicken"));
    }

  • 답변 # 1

    먼저 선택기를 만듭니다. 중요한 것은 "mailto:" 다음에 비워 두십시오.

    val selectorIntent= Intent(Intent.ACTION_SENDTO).apply {
        data= Uri.parse("mailto:")
    }
    

    이메일 인텐트 자체:

    val emailIntent= Intent(Intent.ACTION_SEND).apply {
        putExtra(Intent.EXTRA_EMAIL, arrayOf("[email protected]"))
        putExtra(Intent.EXTRA_SUBJECT, "This is a subject")
        putExtra(Intent.EXTRA_TEXT, "Body text")
        selector= selectorIntent
    }
    

    이메일 앱을 엽니다.

    if (intent.resolveActivity(packageManager) != null) {
        startActivity(intent)
    }
    

    (솔루션은 kotlin에 있습니다)

  • 답변 # 2

    저는 gmail의 경우 본문 속성을 사용하고 다른 이메일의 경우 EXTRA_TEXT를 사용합니다. 삼성 이메일, 원플러스 이메일, LG 이메일과 같은 다양한 이메일 앱을 테스트했는데 EXTRA_TEXT를 지원하는 것으로 보이지만 Gmail은 "본문" 속성을 지원합니다.

    fun composeEmailMessage(context: Context,  subject: String, body: String, emails: Array<String>= arrayOf()) {
    val intent= Intent(Intent.ACTION_SENDTO)
    intent.data= Uri.parse("mailto:")
    intent.putExtra(Intent.EXTRA_EMAIL, emails)
    intent.putExtra(Intent.EXTRA_SUBJECT, subject)
    intent.putExtra(Intent.EXTRA_TEXT, body)//other emails app
    intent.putExtra("body", body)//gmail
    if (intent.resolveActivity(context.packageManager) != null) {
        context.startActivity(Intent.createChooser(intent, "Send email via..."))
    }
    

    }

  • 답변 # 3

    본문이 포함된 이메일을 보내려면 message/rfc822를 사용하십시오.

    Intent sendIntent= new Intent(Intent.ACTION_SEND);
    sendIntent.setType("message/rfc822");
    sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]", "[email protected]" });
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject of the email");
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Content of the email");
    startActivity(sendIntent);
    

    도움이 되기를 바랍니다.

    좋습니다. 이것은 신체에 도움이 되지만 이것을 사용하면 새로운 문제가 생깁니다. 받는 사람이 사라졌습니다. 어떻게 고칠까요?

    neominik2022-01-11 23:12:08

    기이 한. 나는 이것을 Gmail로 시도했고 수신자를 볼 수 있습니다. 어떤 앱에서 이메일을 보내려고 하시나요?

    Aswin Rajendiran2022-01-11 23:12:08

    이것은 저에게도 효과적입니다. EXTRA_EMAIL에 String-Array를 사용하는 것을 잊었습니다. 단일 문자열에서는 작동하지 않습니다.

    neominik2022-01-11 23:12:08
  • 답변 # 4

    메시지 유형을 추가해 보세요.

    ...
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, myMessage);
    ...
    

    글쎄, 나는 내가 그것을 가질 것이라고 정말로 생각했다. 하지만 해당 줄을 추가해도 스톡 이메일 앱에는 본문이 표시되지 않습니다.

    neominik2022-01-11 23:12:08
  • 이전 java : Firebase에 문자열 데이터를 저장할 수 있습니까? 이와 같이 Firebase에 정의된 문자열 데이터를 저장하고 싶습니다.
  • 다음 highcharts : 하이차트에 글자가 많은 제목을 표시하기 위한 좋은 아이디어(설정)가 있습니까?