내 Android 애플리케이션에서 이메일을 보내는 방법은 무엇입니까?


답변:


978

가장 좋고 쉬운 방법은 다음을 사용하는 것입니다 Intent.

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT   , "body of email");
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

그렇지 않으면 자신의 클라이언트를 작성해야합니다.


6
위 코드에는 발신자 이메일 ID가 없습니다. 그러면 메시지가 어떻게 전송됩니까?
KIRAN KJ

38
KIRAN : 인 텐트가이를 이해하는 방법을 조사해야합니다. 기본적으로 수신자, 제목 및 본문이 채워진 이메일 응용 프로그램을 엽니 다. 보내기는 이메일 앱에 달려 있습니다.
Jeremy Logan

8
활동을 시작하여 "TO"필드에 이메일이 나타나지 않습니다. 누구 알아?
Hamza Waqas

11
이 코멘트의 큰 기여는 : message / rfc822
Guilherme Oliveira

22
선택기 만 표시 응용 프로그램을 이메일을 보내 있는지로 이러한 추가 : Intent i = new Intent(Intent.ACTION_SENDTO); i.setType("message/rfc822"); i.setData(Uri.parse("mailto:"));
에드리스

194

사용 .setType("message/rfc822")또는 선택기는 전송 의도를 지원하는 모든 (많은) 응용 프로그램을 보여줍니다.


5
좋아, 이거 더 많은 투표권을 가져야 해 에뮬레이터에서 테스트하는 것을 눈치 채지 못하지만 실제 장치에서 "텍스트 / 일반"을 보내면 15 개 이상의 앱 목록이 표시됩니다 !! 따라서 "message / rfc822"가 권장됩니다 (이메일 표준).
Blundell

7
안녕하세요 @Blundell,하지만 난에 변경 한 후 어떤 차이를 보지 않았다message/rfc822
그릴

2
목록에서 블루투스를 제거 할 수 있습니까? 이 유형과 함께 나타납니다. 그러나 +1, 깔끔한 트릭!
ingh.am

4
베이컨을 구했습니다. 고객에게 요청을 이메일로 보내는 대신 지원할 수 있다고 설명 할 수 없습니다.
Kevin Galligan

1
+1111111 이것은 +1이 끝이 없어 다른 사람들이 이것을 볼 수 있습니다. 나는이 부분을 놓치고 잠시 동안이 문제를 처리해야했습니다!
ChallengeAccepted

89

나는 오래 전부터 이것을 사용해 왔으며 전자 메일이 아닌 응용 프로그램이 나타나지 않는 것이 좋습니다. 이메일 보내기 의도를 보내는 또 다른 방법 :

Intent intent = new Intent(Intent.ACTION_SENDTO); // it's not ACTION_SEND
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject of email");
intent.putExtra(Intent.EXTRA_TEXT, "Body of email");
intent.setData(Uri.parse("mailto:default@recipient.com")); // or just "mailto:" for blank
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this will make such that when user returns to your app, your app is displayed, instead of the email app.
startActivity(intent);

1
지원되지 않는 작업 :이 작업은 현재 지원되지 않습니다
erdomester

4
lgor G-> plz setType "(plain / text")에서 setType ( "text / plain")으로 변경
sachit

2
.setType ( "message / rfc822") not text / plain
Hungry Androider

1
이 코드는 이메일 의도를 열 것입니까? 사용자 @yuku에게 의도를 표시하지 않고 이메일을 보내는 방법 이메일에 비밀번호를 보내려고합니다
Erum

2
이 답변은 매우 영향력이 있습니다. :)
Nick Volynkin

54

첨부 된 이진 오류 로그 파일이 포함 된 전자 메일을 보내기 위해 현재 허용되는 답변 줄을 따라 무언가를 사용하고있었습니다. GMail과 K-9는 잘 보내며 내 메일 서버에도 잘 도착합니다. 유일한 문제는 첨부 된 로그 파일을 열고 저장하는 데 문제가있는 선택한 Thunderbird 메일 클라이언트였습니다. 실제로 그것은 불평없이 파일을 전혀 저장하지 않았습니다.

이 메일의 소스 코드 중 하나를 살펴본 결과 로그 파일 첨부 파일에 MIME 유형이 있음을 알았습니다 message/rfc822. 물론 첨부 파일은 첨부 된 이메일이 아닙니다. 그러나 썬더 버드는 그 작은 오류에 정상적으로 대처할 수 없습니다. 그래서 그것은 일종의 충격이었습니다.

약간의 연구와 실험을 한 후 다음 해결책을 찾았습니다.

public Intent createEmailOnlyChooserIntent(Intent source,
    CharSequence chooserTitle) {
    Stack<Intent> intents = new Stack<Intent>();
    Intent i = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto",
            "info@domain.com", null));
    List<ResolveInfo> activities = getPackageManager()
            .queryIntentActivities(i, 0);

    for(ResolveInfo ri : activities) {
        Intent target = new Intent(source);
        target.setPackage(ri.activityInfo.packageName);
        intents.add(target);
    }

    if(!intents.isEmpty()) {
        Intent chooserIntent = Intent.createChooser(intents.remove(0),
                chooserTitle);
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
                intents.toArray(new Parcelable[intents.size()]));

        return chooserIntent;
    } else {
        return Intent.createChooser(source, chooserTitle);
    }
}

다음과 같이 사용할 수 있습니다.

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("*/*");
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(crashLogFile));
i.putExtra(Intent.EXTRA_EMAIL, new String[] {
    ANDROID_SUPPORT_EMAIL
});
i.putExtra(Intent.EXTRA_SUBJECT, "Crash report");
i.putExtra(Intent.EXTRA_TEXT, "Some crash report details");

startActivity(createEmailOnlyChooserIntent(i, "Send via email"));

보다시피, createEmailOnlyChooserIntent 메소드는 올바른 의도와 올바른 MIME 유형으로 쉽게 공급 될 수 있습니다.

그런 다음 ACTION_SENDTO mailto프로토콜 의도 (이메일 앱만 해당)에 응답하는 사용 가능한 활동 목록을 살펴보고 해당 활동 목록과 올바른 MIME 유형의 원래 ACTION_SEND 의도를 기반으로 선택 자를 구성합니다.

또 다른 장점은 Skype가 더 이상 나열되지 않는다는 것입니다 (rfc822 MIME 유형에 응답 함).


1
방금 코드 스 니펫을 삽입했는데 정상적으로 작동합니다. Google 드라이브, Skype 등의 앱이 표시되기 전에 다른 애플리케이션을 호출하지 않고 애플리케이션에서 메일을 보낼 수있는 방법이 없습니까? @Rene postet 위의 이메일 클라이언트에 관한 기사를 읽었지만 간단한 이메일을 보내기에는 너무 복잡해 보입니다
Alex Cio

훌륭한 답변입니다. Skype와 Google Drive도 함께 제공 ACTION_SEND되어 아름답게 정리했습니다.
darrenp

1
위의 가장 인기있는 솔루션은 Skype와 Vkontakte도 반환합니다. 이 솔루션이 더 좋습니다.
Denis Kutlubaev

?이 피스 sepecify 초기화 않았다 crashLogFile 것입니다
Noufal

@Noufal 이것은 내 코드베이스의 일부입니다. 그것은이다 File내 Android 앱은 캐치되지 않는 예외가 있었다 경우 백그라운드에서 생성 충돌 로그 파일을 가리키는 인스턴스입니다. 이 예는 이메일 첨부 파일을 추가하는 방법을 보여줍니다. 외부 저장소 (예 : 이미지)에서 다른 파일을 첨부 할 수도 있습니다. crashLogFile실제 예제를 얻기 위해 해당 줄을 제거 할 수도 있습니다 .
tiguchi

37

의도를 해결하기 위해 APPS 를 확인 하려면 ACTION_SENDTO를 Action으로 지정하고 mailto를 Data로 지정해야합니다.

private void sendEmail(){

    Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
    emailIntent.setData(Uri.parse("mailto:" + "recipient@example.com")); 
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "My email's subject");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "My email's body");

    try {
        startActivity(Intent.createChooser(emailIntent, "Send email using..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(Activity.this, "No email clients installed.", Toast.LENGTH_SHORT).show();
    }

}

23

안드로이드 문서가 설명하는 것처럼 간단한 코드 줄 로이 문제를 해결했습니다.

( https://developer.android.com/guide/components/intents-common.html#Email )

가장 중요한 플래그이다 : 그것은이다 ACTION_SENDTO, 그리고ACTION_SEND

다른 중요한 라인은

intent.setData(Uri.parse("mailto:")); ***// only email apps should handle this***

당신이 빈을 보내는 경우 그건 그렇고, Extraif()끝이 작동하지 않습니다 앱은 이메일 클라이언트를 실행하지 않습니다.

안드로이드 문서에 따르면. 인 텐트가 다른 문자 메시지 나 소셜 앱이 아닌 이메일 앱으로 만 처리되도록하려면 ACTION_SENDTO조치 를 사용 하고 " mailto:"데이터 체계를 포함 시키십시오 . 예를 들면 다음과 같습니다.

public void composeEmail(String[] addresses, String subject) {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

21

Android BeamBluetooth 와 같이 이메일 클라이언트가 아닌 앱을 사용 .setType("message/rfc822")하거나 ACTION_SEND일치시키는 전략 도 있습니다 .

ACTION_SENDTOmailto:URI 사용 완벽하게 작동 하는 것으로 보이며 개발자 설명서에서 권장됩니다 . 그러나 공식 에뮬레이터에서이 작업을 수행하고 이메일 계정이 설정되어 있지 않거나 메일 클라이언트가없는 경우 다음 오류가 발생합니다.

지원되지 않는 동작

해당 조치는 현재 지원되지 않습니다.

아래 그림과 같이:

지원되지 않는 작업 : 해당 작업은 현재 지원되지 않습니다.

에뮬레이터가 인 텐트를라는 활동으로 해석 com.android.fallback.Fallback하면 위의 메시지가 표시됩니다. 분명히 이것은 의도적으로 설계된 것입니다.

앱이이를 우회하여 공식 에뮬레이터에서도 올바르게 작동하도록하려면 이메일을 보내기 전에 확인할 수 있습니다.

private void sendEmail() {
    Intent intent = new Intent(Intent.ACTION_SENDTO)
        .setData(new Uri.Builder().scheme("mailto").build())
        .putExtra(Intent.EXTRA_EMAIL, new String[]{ "John Smith <johnsmith@yourdomain.com>" })
        .putExtra(Intent.EXTRA_SUBJECT, "Email subject")
        .putExtra(Intent.EXTRA_TEXT, "Email body")
    ;

    ComponentName emailApp = intent.resolveActivity(getPackageManager());
    ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback");
    if (emailApp != null && !emailApp.equals(unsupportedAction))
        try {
            // Needed to customise the chooser dialog title since it might default to "Share with"
            // Note that the chooser will still be skipped if only one app is matched
            Intent chooser = Intent.createChooser(intent, "Send email with");
            startActivity(chooser);
            return;
        }
        catch (ActivityNotFoundException ignored) {
        }

    Toast
        .makeText(this, "Couldn't find an email app and account", Toast.LENGTH_LONG)
        .show();
}

개발자 설명서 에서 자세한 정보를 찾으십시오 .


13

인 텐트를 사용하여 이메일을 보낼 수 있으며 구성이 필요하지 않습니다. 그러나 사용자 상호 작용이 필요하고 레이아웃이 약간 제한됩니다.

사용자 상호 작용없이보다 복잡한 전자 메일을 작성하고 보내려면 고유 한 클라이언트를 구축해야합니다. 첫 번째는 전자 메일 용 Sun Java API를 사용할 수 없다는 것입니다. Apache Mime4j 라이브러리를 활용하여 이메일을 작성하는 데 성공했습니다. 모두 nilvec 의 문서를 기반으로합니다 .


6

다음은 안드로이드 장치에서 메일 응용 프로그램 을 열고 작성 메일의 To 주소제목 으로 자동 채워지 는 샘플 작업 코드입니다 .

protected void sendEmail() {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:feedback@gmail.com"));
    intent.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

감사. @Avi Parshan의 솔루션과 비교하여 이메일을에 setData()설정하고 Avi를에 설정합니다 putExtra(). 두 변종 모두 작동합니다. 제거하지만 setData사용 만 intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"hi@example.com"});하는이 될 것이다 ActivityNotFoundException.
CoolMind

5

내 앱에서 아래 코드를 사용합니다. Gmail과 같은 이메일 클라이언트 앱이 정확하게 표시됩니다.

    Intent contactIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", getString(R.string.email_to), null));
    contactIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.email_subject));
    startActivity(Intent.createChooser(contactIntent, getString(R.string.email_chooser)));

5

이메일 클라이언트 (알 수없는 이유로 PayPal) 만 표시됩니다.

 public void composeEmail() {

    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:"));
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"hi@example.com"});
    intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    intent.putExtra(Intent.EXTRA_TEXT, "Body");
    try {
        startActivity(Intent.createChooser(intent, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }
}

1
좋은 해결책! 많은 부적절한 응용 프로그램 (주로 "공유"로 사용)을 피합니다. intent.type = "message/rfc822"; intent.type = "text/html";예외로 이어질 수 있으므로 여기에 추가하지 마십시오 .
CoolMind

3

이것이 내가 한 방법입니다. 좋고 간단합니다.

String emailUrl = "mailto:email@example.com?subject=Subject Text&body=Body Text";
        Intent request = new Intent(Intent.ACTION_VIEW);
        request.setData(Uri.parse(emailUrl));
        startActivity(request);

3

Gmail을 찾을 수없는 경우이 기능은 먼저 이메일을 보내기위한 인 텐트 gmail을 지시 한 다음 인 텐트 선택기를 홍보합니다. 많은 상용 앱 에서이 기능을 사용했으며 정상적으로 작동합니다. 그것이 당신을 도울 것입니다 희망 :

public static void sentEmail(Context mContext, String[] addresses, String subject, String body) {

    try {
        Intent sendIntentGmail = new Intent(Intent.ACTION_VIEW);
        sendIntentGmail.setType("plain/text");
        sendIntentGmail.setData(Uri.parse(TextUtils.join(",", addresses)));
        sendIntentGmail.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
        sendIntentGmail.putExtra(Intent.EXTRA_EMAIL, addresses);
        if (subject != null) sendIntentGmail.putExtra(Intent.EXTRA_SUBJECT, subject);
        if (body != null) sendIntentGmail.putExtra(Intent.EXTRA_TEXT, body);
        mContext.startActivity(sendIntentGmail);
    } catch (Exception e) {
        //When Gmail App is not installed or disable
        Intent sendIntentIfGmailFail = new Intent(Intent.ACTION_SEND);
        sendIntentIfGmailFail.setType("*/*");
        sendIntentIfGmailFail.putExtra(Intent.EXTRA_EMAIL, addresses);
        if (subject != null) sendIntentIfGmailFail.putExtra(Intent.EXTRA_SUBJECT, subject);
        if (body != null) sendIntentIfGmailFail.putExtra(Intent.EXTRA_TEXT, body);
        if (sendIntentIfGmailFail.resolveActivity(mContext.getPackageManager()) != null) {
            mContext.startActivity(sendIntentIfGmailFail);
        }
    }
}

1
고마워 내 생명을 구하십시오
androCoder-BD

2

간단한 이것을 시도하십시오

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonSend = (Button) findViewById(R.id.buttonSend);
    textTo = (EditText) findViewById(R.id.editTextTo);
    textSubject = (EditText) findViewById(R.id.editTextSubject);
    textMessage = (EditText) findViewById(R.id.editTextMessage);

    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            String to = textTo.getText().toString();
            String subject = textSubject.getText().toString();
            String message = textMessage.getText().toString();

            Intent email = new Intent(Intent.ACTION_SEND);
            email.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
            // email.putExtra(Intent.EXTRA_CC, new String[]{ to});
            // email.putExtra(Intent.EXTRA_BCC, new String[]{to});
            email.putExtra(Intent.EXTRA_SUBJECT, subject);
            email.putExtra(Intent.EXTRA_TEXT, message);

            // need this to prompts email client only
            email.setType("message/rfc822");

            startActivity(Intent.createChooser(email, "Choose an Email client :"));

        }
    });
}

3
이 글을 올렸을 때 이미 존재했던 답변보다 더 나은 점은 무엇입니까? 액티비티에 래핑 된 승인 된 답변의 사본처럼 보입니다.
Sam

2

다른 해결책은 일 수 있습니다

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent.setType("plain/text");
emailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"someone@gmail.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Yo");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Hi");
startActivity(emailIntent);

대부분의 안드로이드 기기에 Gmail 앱이 이미 설치되어 있다고 가정합니다.


@PedroVarela 우리는 항상 활동을 찾을 수없는 예외를 확인할 수 있습니다.
silentsudo

1
응 우리는 할 수있어. 그러나 귀하의 솔루션은 옳지 않습니다. Android 설명서에는 의도 선택기에 메일 앱만 표시하기 위해 수행해야 할 작업이 명확하게 나와 있습니다. "대부분의 안드로이드 기기에 Gmail 앱이 이미 설치되어 있다고 가정합니다"; 루팅 된 기기이고 사용자가 Gmail 클라이언트를 삭제하면 어떻게 되나요?. 자신의 이메일 앱을 만들고 있다고 가정합니다. 사용자가 이메일을 보내려고하면 앱이 해당 목록에 없습니다. Gmail이 패키지 이름을 변경하면 어떻게됩니까? 앱을 업데이트 하시겠습니까?
Pedro Varela

2

이메일 전송에 사용하십시오 ...

boolean success = EmailIntentBuilder.from(activity)
    .to("support@example.org")
    .cc("developer@example.org")
    .subject("Error report")
    .body(buildErrorReport())
    .start();

빌드 gradle 사용 :

compile 'de.cketti.mailto:email-intent-builder:1.0.0'

2

이 코드를 사용하여 기본 메일 앱 작성 섹션을 직접 시작하여 메일을 보냈습니다.

    Intent i = new Intent(Intent.ACTION_SENDTO);
    i.setType("message/rfc822"); 
    i.setData(Uri.parse("mailto:"));
    i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"test@gmail.com"});
    i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    i.putExtra(Intent.EXTRA_TEXT   , "body of email");
    try {
        startActivity(Intent.createChooser(i, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }

1

이 방법은 저에게 효과적입니다. Gmail 앱 (설치된 경우)을 열고 mailto를 설정합니다.

public void openGmail(Activity activity) {
    Intent emailIntent = new Intent(Intent.ACTION_VIEW);
    emailIntent.setType("text/plain");
    emailIntent.setType("message/rfc822");
    emailIntent.setData(Uri.parse("mailto:"+activity.getString(R.string.mail_to)));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, activity.getString(R.string.app_name) + " - info ");
    final PackageManager pm = activity.getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
    ResolveInfo best = null;
    for (final ResolveInfo info : matches)
        if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail"))
            best = info;
    if (best != null)
        emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
    activity.startActivity(emailIntent);
}

1
/**
 * Will start the chosen Email app
 *
 * @param context    current component context.
 * @param emails     Emails you would like to send to.
 * @param subject    The subject that will be used in the Email app.
 * @param forceGmail True - if you want to open Gmail app, False otherwise. If the Gmail
 *                   app is not installed on this device a chooser will be shown.
 */
public static void sendEmail(Context context, String[] emails, String subject, boolean forceGmail) {

    Intent i = new Intent(Intent.ACTION_SENDTO);
    i.setData(Uri.parse("mailto:"));
    i.putExtra(Intent.EXTRA_EMAIL, emails);
    i.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (forceGmail && isPackageInstalled(context, "com.google.android.gm")) {
        i.setPackage("com.google.android.gm");
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    } else {
        try {
            context.startActivity(Intent.createChooser(i, "Send mail..."));
        } catch (ActivityNotFoundException e) {
            Toast.makeText(context, "No email app is installed on your device...", Toast.LENGTH_SHORT).show();
        }
    }
}

/**
 * Check if the given app is installed on this devuice.
 *
 * @param context     current component context.
 * @param packageName The package name you would like to check.
 * @return True if this package exist, otherwise False.
 */
public static boolean isPackageInstalled(@NonNull Context context, @NonNull String packageName) {
    PackageManager pm = context.getPackageManager();
    if (pm != null) {
        try {
            pm.getPackageInfo(packageName, 0);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    return false;
}

1
 Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto","ebgsoldier@gmail.com", null));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Forgot Password");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "Write your Pubg user name or Phone Number");
    startActivity(Intent.createChooser(emailIntent, "Send email..."));**strong text**

1

이 시도:

String mailto = "mailto:bob@example.org" +
    "?cc=" + "alice@example.com" +
    "&subject=" + Uri.encode(subject) +
    "&body=" + Uri.encode(bodyText);

Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse(mailto));

try {
    startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
    //TODO: Handle case where no email app is available
}

위 코드는 이메일을 보낼 준비가되어있는 사용자가 선호하는 이메일 클라이언트를 엽니 다.

출처

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.