উদ্দেশ্য


90

আমি একটি ব্যবহার করার চেষ্টা করছি আমার অ্যাপ্লিকেশন থেকে একটি ইমেল প্রেরণ করতে কিন্তু ইমেলের To ক্ষেত্রটি পপুলেশন করবে না। আমি যদি বিষয় বা পাঠ্য পূরণের জন্য কোড যুক্ত করি তবে তারা ভাল কাজ করে। কেবলমাত্র ক্ষেত্রটি জনবহুল হবে না।

আমি প্রকারটি "পাঠ্য / প্লেইন" এবং "পাঠ্য / এইচটিএমএল" তে পরিবর্তন করার চেষ্টা করেছি তবে আমি একই সমস্যা পেয়েছি। কেউ দয়া করে সাহায্য করতে পারেন?

public void Email(){

    Intent emailIntent = new Intent(Intent.ACTION_SEND); 
    emailIntent.setType("message/rfc822");  //set the email recipient
    String recipient = getString(R.string.IntegralEmailAddress);
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL  , recipient);
    //let the user choose what email client to use
    startActivity(Intent.createChooser(emailIntent, "Send mail using...")); }

আমি যে ইমেল ক্লায়েন্টটি ব্যবহার করার চেষ্টা করছি তা হ'ল জিমেইল

উত্তর:


219

আমার মনে হয় আপনি ক্ষণস্থায়ী নেই recipientযেমনarray of string

এটা মত হওয়া উচিত

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { "someone@gmail.com" });

21
অ্যান্ড্রয়েড ... তুমি এত করুণ কেন?
বাগগুলি হ'ল

4
হাহাহাহা, আপনি আমাকে হাসিয়ে দিয়েছেন +1 মিলিয়ন @ বাগস্হাপেন .. কারণ: এটি একটি ওপেন সোর্স তবে ডকুমেন্টেশনগুলি 100% সন্তোষজনক নয়, ডিভাইস নির্মাতারা তাদের প্রয়োজন অনুসারে পরিবর্তন করে (বেশিরভাগ ডিভাইস সস্তা এবং অকেজো), বিকাশকারীরা "বিকাশকারী পড়েন না। android.com "।
এমকেজেপ্রেখ

4
এছাড়াও নিশ্চিত করুন যে আপনি হয় তা নিশ্চিত নয় করছেন intent.putExtra(Intent.EXTRA_EMAIL, list.toArray()) এটা না কাজ যেহেতু list.toArray () উৎপন্ন বস্তু [] এবং স্ট্রিং []
nikib3ro

@ kape123 এই তবে কাজ করেintent.putExtra(Intent.EXTRA_EMAIL, list.toArray(new String[0]))
Abtin Gramian

4

এটা ব্যবহার কর

public void Email(){
    // use this to declare your 'recipient' string and get your email recipient from your string xml file
    Resources res = getResources();
    String recipient = getString(R.string.IntegralEmailAddress);
    Intent emailIntent = new Intent(Intent.ACTION_SEND); 
    emailIntent.setType("message/rfc822");  //set the email recipient
    emailIntent.putExtra(Intent.EXTRA_EMAIL, recipient);
    //let the user choose what email client to use
    startActivity(Intent.createChooser(emailIntent, "Send mail using...")); 

``}

এটি কাজ করবে :)
এটি অ্যান্ড্রয়েড ডকুমেন্টেশন ইনটেন্ট সম্পর্কে বলে

সুতরাং আপনার স্ট্রিংটি সঠিকভাবে খাওয়ানো উচিত আপনি এখানে আরও পড়তে পারেন
http://developer.android.com/guide/compferences/intents-common.html# ইমেল এবং এখানে http://developer.android.com/guide/topics/res উত্স /string-resource.html বা ACTION_SENDTO ক্রিয়াটি ব্যবহার করুন এবং "মেলটো:" ডেটা স্কিম অন্তর্ভুক্ত করুন। উদাহরণ স্বরূপ:

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);
}

3

কোটলিনে - অ্যান্ড্রয়েড

fun sendMail(
        activity: Activity,
        emailIds: Array<String>,
        subject: String,
        textMessage: String
    ) {


        val emailIntent = Intent(Intent.ACTION_SEND)
        emailIntent.type = "text/plain"
        emailIntent.putExtra(Intent.EXTRA_EMAIL, emailIds)
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject)
        emailIntent.putExtra(Intent.EXTRA_TEXT, textMessage)
        emailIntent.setType("message/rfc822")
        try {
            activity.startActivity(
                Intent.createChooser(
                    emailIntent,
                    "Send email using..."
                )
            )
        } catch (ex: ActivityNotFoundException) {
            Toast.makeText(
                activity,
                "No email clients installed.",
                Toast.LENGTH_SHORT
            ).show()
        }
    }

এছাড়াও আপনি val emailIntent = Intent(Intent.ACTION_SENDTO)সরাসরি ইমেল ক্লায়েন্টকে অনুরোধ করতে [ ] ব্যবহার করতে পারেন

//argument of function
val subject = "subject of you email"
val eMailMessageTxt = "Add Message here"

val eMailId1 = "emailId1@gmail.com"
val eMailId2 = "emailId2@gmail.com"
val eMailIds: Array<String> = arrayOf(eMailId1,eMailId2)

//Calling function
sendMail(this, eMailIds, subject, eMailMessageTxt)

আমি আশা করি এই কোড স্নিপেট কোটলিন বিকাশকারীদের সহায়তা করবে।


2
private void callSendMeMail() {
    Intent Email = new Intent(Intent.ACTION_SEND);
    Email.setType("text/email");
    Email.putExtra(Intent.EXTRA_EMAIL, new String[] { "me@gmail.com" });
    Email.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
    startActivity(Intent.createChooser(Email, "Send mail to Developer:"));
}

এটি বলছে যে কোনও অ্যাপ্লিকেশন এই ক্রিয়াটি করতে পারে না।
আবু ন

1



দু'পক্ষের জিনিস: 1 - আপনাকে ক্রিয়াকলাপ ধ্রুবকটিকে ACTION_SENDTO হিসাবে সেট করতে হবে।
Intent intentEmail = new Intent(Intent.ACTION_SENDTO);

2 - আপনি যদি এটি কেবল মেল দ্বারা খোলার চান তবে সেটডাটা () পদ্ধতিটি ব্যবহার করুন: intentEmail.setData(Uri.parse("mailto:"));অন্যথায় এটি আপনাকে আপনার ডিভাইসে উপস্থিত অন্যান্য অ্যাপ্লিকেশন দ্বারা পাঠ্য, চিত্র, অডিও ফাইল হিসাবে এটি খুলতে বলবে।

3 - আপনার ইমেল আইডি স্ট্রিংটি কেবল একটি স্ট্রিং হিসাবে নয়, অ্যারে অবজেক্ট হিসাবে পাস করতে হবে । স্ট্রিংটি হল: "name@email.com" । স্ট্রিং এর এরে অবজেক্ট হল: নতুন স্ট্রিং [] { "email1", "email2", "more_email"}

intentEmail.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@overflow.com", "abcd@stack.com"});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.