有很多人都有这个问题,但他们的解决方案都不适用于我,我尝试将类型从rfc822更改为纯文本,在我的模拟器中打开电子邮件并设置帐户,使用intent action_sendto Uri.parse&#34 ; mailto:",动作发送。
我是否需要在模拟器中安装一些东西,或者这真的适用于真正的手机?
send =(Button) findViewById(R.id.send_button);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"myemail@gmail.com"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "HEY");
emailIntent.putExtra(Intent.EXTRA_CC, "example@gmail.com");
emailIntent.setType("message/rfc822");
startActivity(Intent.createChooser(emailIntent, "Choose an Email client :"));
} catch (ActivityNotFoundException anfe) {
Toast toast = Toast.makeText(email.this, "Sorry, no email client found", Toast.LENGTH_LONG);
toast.show();
}
}
}
);
答案 0 :(得分:0)
以下代码正常,
使用此代码发送电子邮件
publicvoid sendEmail() {
Log.i("Send email", "");
String[] TO = {""}; // Array of email address whom you want to send email
String[] CC = {""}; // Array of email address whom you want to keep in CC
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, TO); // E-mail Addresss
emailIntent.putExtra(Intent.EXTRA_CC, CC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject"); // Email Subject
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here"); // your E-mail body
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
Log.i("Finished sending email...", "");
}
catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}
了解详情
意图对象 - 发送电子邮件的操作您将使用ACTION_SEND操作启动安装在Android设备上的电子邮件客户端。以下是使用ACTION_SEND操作创建意图的简单语法
Intent emailIntent = new Intent(Intent.ACTION_SEND);
意图对象 - 要发送电子邮件的数据/类型要发送电子邮件,您需要使用setData()方法将mailto:
指定为URI,数据类型将指向text/plain
使用setType()
方法如下 -
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
意图对象 - 发送电子邮件的额外内容
EXTRA_BCC
一个String [],其中包含应该被盲目复制的电子邮件地址。
EXTRA_CC
一个String [],保存应该被复制的电子邮件地址。
EXTRA_EMAIL
一个String [],包含应该传递给的电子邮件地址。
EXTRA_HTML_TEXT
与Intent关联的常量String,与ACTION_SEND一起使用,以EXTRA_TEXT替代HTML格式的文本。
EXTRA_SUBJECT
保持邮件所需主题行的常量字符串。
EXTRA_TEXT
与Intent关联的常量CharSequence,与ACTION_SEND一起使用以提供要发送的文字数据。
EXTRA_TITLE
CharSequence对话框标题,用于与ACTION_CHOOSER一起使用时提供给用户。