0

我正在开发有一个发送电子邮件模块的应用程序。我尝试了很多教程,但电子邮件没有发送,也没有异常或错误。我在这里分享我用来发送电子邮件的所有代码。

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

            emailIntent.setType("plain/text");

            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ email.getText().toString()});

            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, name.getText());

            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, smessage.getText());

          Email.this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));

这个不工作然后我试过了

  Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
                        "mailto","waleedahmed_786@yahoo.com", null));
            emailIntent.putExtra(Intent.EXTRA_SUBJECT, "EXTRA_SUBJECT");
            emailIntent.setTypeAndNormalize("plain/text");
startActivity(Intent.createChooser(emailIntent, "Send email..."));

它也没有奏效。然后我试过了

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

              //need this to prompts email client only
            feedback.setType("text/plain");

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

我已经尝试了所有这三个代码,但甚至没有一个代码片段有效,我已经在 Google nexus 上进行了测试,但它没有用

这是我的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bg">

 <LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/header_bg" >

     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:layout_weight="0.28"
         android:background="@drawable/back"
         android:orientation="vertical" >
     </LinearLayout>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="38dp"
        android:layout_weight="0.28"
        android:paddingLeft="50dp"
        android:paddingTop="15dp"
        android:text="@string/ReceiptOrganizer"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>



 <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical" 
     android:background="@drawable/receipt_added_bg">

     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="20dp" >

         <TextView
             android:id="@+id/textView2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Name" />

         <EditText
             android:id="@+id/name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:ems="10"
             android:inputType="textPersonName" >

             <requestFocus />
         </EditText>

     </LinearLayout>

     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="20dp" >

         <TextView
             android:id="@+id/textView2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Email" />

         <EditText
             android:id="@+id/email"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:ems="10"
             android:inputType="textEmailAddress" >

             <requestFocus />
         </EditText>

     </LinearLayout>

     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="20dp" >

         <TextView
             android:id="@+id/textView2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Feedback" />

         <EditText
             android:id="@+id/msg"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:ems="10"
             android:inputType="textMultiLine" />


     </LinearLayout>

     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="20dp" >

         <Button
             android:id="@+id/send"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="left"/>

     </LinearLayout>

 </LinearLayout>

4

3 回答 3

0

请将类型设置为 setType("application/octet-stream") 而不是纯文本/文本,并且我要求您确认您的清单文件中是否具有 Internet 权限。

尝试下面的代码片段,它具有我上面提到的 setType ad application/octext-stream

// 为类意图创建一个对象

Intent sendIntent;

// 因为我们要发送,所以我们使用 ACTION_SEND

sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("application/octet-stream");
sendIntent.putExtra(Intent.EXTRA_EMAIL,new String[] {"san123@gmail.com"});
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Test");
sendIntent.putExtra(Intent.EXTRA_TEXT, "Hy Testing");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath()));

startActivity(Intent.createChooser(sendIntent, "Send Mail"));

并添加以下权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-10-03T06:56:47.290 回答
0
String to = toEmail.getText().toString();
String subject = emailSubject.getText().toString();
String message = emailBody.getText().toString();
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, 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"));
于 2013-10-03T06:59:19.397 回答
0

尝试

Intent send = new Intent(Intent.ACTION_SENDTO);
        String uriText = "mailto:" + Uri.encode("a@b.com") + 
                  "?subject=" + Uri.encode("the subject") + 
                  "&body=" + Uri.encode("the body of the message");
        Uri uri = Uri.parse(uriText);

        send.setData(uri);
        startActivity(Intent.createChooser(send, "Send mail..."));

在清单中添加访问 Internet 的权限。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-10-03T06:54:40.057 回答