当前位置:首页 > 代码 > 正文

android发邮件代码(android邮件客户端)

admin 发布:2022-12-19 15:33 126


本篇文章给大家谈谈android发邮件代码,以及android邮件客户端对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

android怎样不打开系统浏览器实现了发送邮件

下载javamail的java包,加入到你项目的库中。

2.修改你的邮箱设置,这里以163邮箱为例。打开设置,开启客户端授权码,记住这个授权码,然后打开POP3/SMTP服务和IMAP/SMTP服务。

输入相应的代码(私我给你发)

在使用该库前先简单介绍一下 Email for Android 2.3.2 中四个核心的类和相关的方法。

EmailConfig 类

setAccount(  ):设置发信人的邮箱(必写)

setPassword(  ) :设置发信人的邮箱密码或授权码(必写)

setSmtpHost(  ):设置SMTP服务器地址(发送邮件时必写)

setSmtpPort(  ):设置SMTP服务器端口(发送邮件时必写)

setPopHost(  ):设置POP服务器地址(接收邮件时必写)

setPopPort(  ):设置POP服务器端口(接收邮件时必写)

setImapHost:设置IMAP服务器地址(接收邮件时必写)

setImapPort:设置IMAP服务器端口(接收邮件时必写)

EmailSendClient 类

setTo(  ):设置收信人邮箱(必写)

setCc(  ):设置抄送人

setBcc(  ):设置密送人

setNickname(  ):设置发信人昵称

setSubject(  ):设置邮件主题(必写)

setText(  ):设置文本型的邮件内容(必写,但 setText(  ) 和 setContent(  ) 只能二选一)

setContent(  ):设置HTML型的邮件内容(同上)

sendAsyn(  ):异步发送邮件(必写)

EmailReceiveClient 类

popReceiveAsyn(  ):使用POP3协议异步接收邮件

imapReceiveAsyn(  ):使用IMAP协议异步接收邮件

EmailExamine 类

connectServer(  ):检查邮件服务器配

Android中我为什么发不了邮件

Android中我为什么发不了邮件???我手机里明明有邮件客户端的,可我为什么不能调用它发送邮件???相信这是很多人会问的问题,手机里有Email客户端,可是偏偏在自己的应用里调用不了,抑或是不知道怎么调用,还有的是一直认为自己写对了,可是偏偏不能调用,无奈之下只能却网上找段代码粘贴上,ok,可以了。。可是你知道别人的代码为什么可以?你知道调用Email是怎么工作的吗?如果你又像给多人发邮件,还想发送附件,怎么做?又迷糊了吧?所以需要搞懂原理才能一通百通,举一反三,而这就是这篇博文要写的,也是你可以在这篇博文中学到的。

在这里你可以学到:

什么是Intent和Intent Fileter

如何发送Email

如何发送特定的标题和内容的Emil

如何发送给多人

如何抄送和密送

如何发送附件

一:什么是Intent和Intent Fileter

关于这个详细介绍请参考 :

Android系列教程之十:Intents and Intent Filters(一)

Android系列教程之十一:Intents and Intent Filters(二)

Android系列教程之十二:Intents and Intent Filters(三)

二:如何发送Email

通过上面就会知道Android应用之间的通信是通过Intent这个东西,如果手机中有实现了你想要功能的应用那么你就不用麻烦去实现一个拉。直接使用就可以,比如这里的发送邮件。

我们新建一个工程SendEmail,基于Android1.6实现。然后定义布局文件和代码如下:

Xml代码

?xml version="1.0" encoding="utf-8"?

LinearLayout xmlns:android=""

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

Button

android:id="@+id/send_btn"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Send Action"

/

/LinearLayout

Java代码

/** 发送邮件测试界面

* @author 飞雪无情 个人博客:

* @since 2011-7-19

*/

public class SendEmailActivity extends Activity implements View.OnClickListener{

private Button mSendBtn;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mSendBtn=(Button)findViewById(R.id.send_btn);

mSendBtn.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch(v.getId()){

case R.id.send_btn:

startSendEmailIntent();

break;

}

}

private void startSendEmailIntent(){

Intent data=new Intent(Intent.ACTION_SENDTO);

data.setData(Uri.parse("mailto:qq10000@qq.com"));

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(data);

}

}

这是我们运行应用,点击按钮就会看到如下效果:

三:分析发送代码

主要的发送代码如下:

Java代码

Intent data=new Intent(Intent.ACTION_SENDTO);

data.setData(Uri.parse("mailto:qq10000@qq.com"));

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(data);

首先构造一个Action为SENDTO的Action

其次创建一个Uri,他是一个mailto的邮件链接,也就是接收地址.

再通过Intent.EXTRA_SUBJECT和Intent.EXTRA_TEXT传递标题和文本的数据,记住,一定要使用这些常量,这是标准,否则Email客户端不认识,那样你传递的标题和文本就不起作用了。

然后就是startActivity进行打开,系统会根据Intent自动匹配找到能处理这个intent的应用,如图列表,有很多个,我们这里选择网易掌上邮,就打开了一个邮件发送界面,如我们所愿,邮件地址、标题和内容都在了,很成功.

intent中的数据传递是以Extra的方式进行put后传递的,然后在使用的时候getter取出使用。

四:发送给多人以及抄送和密送

发送给多人以及抄送和密送都很简单,查找Intent类中的Extra常量,发送有这么三个常量:Intent.EXTRA_EMAIL,Intent.EXTRA_CC,Intent.EXTRA_BCC。这三个分别用于传递“接受人地址列表”、“抄送人地址列表”和“密送人地址列表”,传递的都是String[]类型的Email地址,如果数组中有多个地址,就可以发送给多人。发送的函数修改如下,我们看下效果:

Java代码

private void startSendEmailIntent(){

Intent data=new Intent(Intent.ACTION_SENDTO);

data.setData(Uri.parse("mailto:qq10000@qq.com"));

data.putExtra(Intent.EXTRA_EMAIL, new String[]{"ls8707@163.com","ls8708@163.com"});

data.putExtra(Intent.EXTRA_CC, new String[]{"ls8709@163.com"});

data.putExtra(Intent.EXTRA_BCC, new String[]{"ls810@163.com"});

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(data);

}

五,发送附件

Email'客户端的发送Activity提供了两个Intent Filter,一个用于发送普通邮件,一个用户发送带有附件的邮件。区分很很容易的,发送普通邮件的那个Intent Filter配置的Action SENDTO,而带有附件的邮件则是SEND,所以是2个不一样,但是哪些比如附加“标题”,“内容”,“抄送”,“发送多人”等等还是通用的。布局文件新增一个按钮,用于发送带有附件的邮件,Activity代码也做修改。

Xml代码

Button

android:id="@+id/send_to_btn"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="SendTo Action"/

Java代码

/* * 发送邮件测试界面

* @author 飞雪无情 个人博客:

* @since 2011-7-19

*/

public class SendEmailActivity extends Activity implements View.OnClickListener{

private Button mSendBtn;

private Button mSendToBtn;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mSendBtn=(Button)findViewById(R.id.send_btn);

mSendToBtn=(Button)findViewById(R.id.send_to_btn);

mSendBtn.setOnClickListener(this);

mSendToBtn.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch(v.getId()){

case R.id.send_btn:

startSendEmailIntent();

break;

case R.id.send_to_btn:

startSendToEmailIntent();

break;

}

}

private void startSendEmailIntent(){

Intent data=new Intent(Intent.ACTION_SENDTO);

data.setData(Uri.parse("mailto:qq10000@qq.com"));

data.putExtra(Intent.EXTRA_EMAIL, new String[]{"ls8707@163.com","ls8708@163.com"});

data.putExtra(Intent.EXTRA_CC, new String[]{"ls8709@163.com"});

data.putExtra(Intent.EXTRA_BCC, new String[]{"ls810@163.com"});

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(data);

}

private void startSendToEmailIntent(){

Intent data=new Intent(Intent.ACTION_SEND);

data.putExtra(Intent.EXTRA_EMAIL, new String[]{"ls8707@163.com"});

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

data.putExtra(Intent.EXTRA_STREAM, Uri.parse(""));

data.setType("text/plain");

startActivity(data);

}

}

运行应用,我们看到效果图里最小面的附件标识,说明已经可以发送附件了.

在Android中发送邮件,会跳到邮件选择器,怎么让发好邮件才执行下面跳转Activity的代码?

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。

Android总Activity的启动模式分为四种:

Activity启动模式设置:

activity android:name=".MainActivity" android:launchMode="standard" /

Activity的四种启动模式:

1. standard

模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。

2. singleTop

如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。

3. singleTask

如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。

4. singleInstance

在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。

其中standard是系统默认的启动模式。

Android开发中怎样调用系统Email发送邮件

在Android中,调用Email有三种类型的Intent: Intent.ACTION_SENDTO 无附件的发送 Intent.ACTION_SEND 带附件的发送 Intent.ACTION_SEND_MULTIPLE 带有多附件的发送 当然,所谓的调用Email,只是说Email可以接收Intent并做这些事情,可能也有其他的应用程序实现了相关功能,所以在执行的时候,会出现选择框进行选择。 1.使用SENTTO发送

Intent data=new Intent(Intent.ACTION_SENDTO);

data.setData(Uri.parse("mailto:way.ping.li@gmail.com"));

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(data);

Intent data=new Intent(Intent.ACTION_SENDTO);

data.setData(Uri.parse("mailto:way.ping.li@gmail.com"));

data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");

data.putExtra(Intent.EXTRA_TEXT, "这是内容");

startActivity(data);

通过向Intent中putExtra来设定邮件的相关参数。 2.使用SEND发送

Intent intent = new Intent(Intent.ACTION_SEND);

String[] tos = { "way.ping.li@gmail.com" };

String[] ccs = { "way.ping.li@gmail.com" };

String[] bccs = {"way.ping.li@gmail.com"};

intent.putExtra(Intent.EXTRA_EMAIL, tos);

intent.putExtra(Intent.EXTRA_CC, ccs);

intent.putExtra(Intent.EXTRA_BCC, bccs);

intent.putExtra(Intent.EXTRA_TEXT, "body");

intent.putExtra(Intent.EXTRA_SUBJECT, "subject");

intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(""));

intent.setType("image/*");

intent.setType("message/rfc882");

Intent.createChooser(intent, "Choose Email Client");

startActivity(intent);

Intent intent = new Intent(Intent.ACTION_SEND);

String[] tos = { "way.ping.li@gmail.com" };

String[] ccs = { "way.ping.li@gmail.com" };

String[] bccs = {"way.ping.li@gmail.com"};

intent.putExtra(Intent.EXTRA_EMAIL, tos);

intent.putExtra(Intent.EXTRA_CC, ccs);

intent.putExtra(Intent.EXTRA_BCC, bccs);

intent.putExtra(Intent.EXTRA_TEXT, "body");

intent.putExtra(Intent.EXTRA_SUBJECT, "subject");

intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(""));

intent.setType("image/*");

intent.setType("message/rfc882");

Intent.createChooser(intent, "Choose Email Client");

startActivity(intent);

很简单,发送邮件中,有收件者,抄送者,密送者。 也就是分别通过 Intent.EXTRA_EMAIL, Intent.EXTRA_CC, Intent.EXTRA_BCC 来进行putExtra来设定的,而单个附件的发送,则使用Intent.EXTRA_STREAM来设置附件的地址Uri。 3.使用SEND_MULTIPLE来进行多附件的发送

Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);

String[] tos = { "way.ping.li@gmail.com" };

String[] ccs = { "way.ping.li@gmail.com" };

intent.putExtra(Intent.EXTRA_EMAIL, tos);

intent.putExtra(Intent.EXTRA_CC, ccs);

intent.putExtra(Intent.EXTRA_TEXT, "body");

intent.putExtra(Intent.EXTRA_SUBJECT, "subject");

ArrayListuri imageUris = new ArrayListuri();

imageUris.add(Uri.parse(""));

imageUris.add(Uri.parse(""));

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);

intent.setType("image/*");

intent.setType("message/rfc882");

Intent.createChooser(intent, "Choose Email Client");

startActivity(intent);

Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);

String[] tos = { "way.ping.li@gmail.com" };

String[] ccs = { "way.ping.li@gmail.com" };

intent.putExtra(Intent.EXTRA_EMAIL, tos);

intent.putExtra(Intent.EXTRA_CC, ccs);

intent.putExtra(Intent.EXTRA_TEXT, "body");

intent.putExtra(Intent.EXTRA_SUBJECT, "subject");

ArrayListuri imageUris = new ArrayListuri();

imageUris.add(Uri.parse(""));

imageUris.add(Uri.parse(""));

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);

intent.setType("image/*");

intent.setType("message/rfc882");

Intent.createChooser(intent, "Choose Email Client");

startActivity(intent);

发送多个附件,最主要的时候,通过putParcelableArrayListExtra将多个附件的Uri地址List设置进去就OK了。其实还是很简单的。

Android怎么直接发AT命令测试

一、准备测试环境及测试文件

1、安装Java JDk,设置好环境变量

2、安装Android SDK,设置好环境变量(详细步骤略)

3、准备被测apk及测试所需的一些工具

二、启动模拟器,并解锁

批处理脚本:

emulator -avd Galaxy4.2 ::启动模拟器

ping -n 90 127.0.0.1nul ::等待模拟器启动成功,-n 90 为等待时间,建议设置大一点

adb shell input keyevent 82 ::模拟器打开后都会锁屏,adb模拟键盘输入,解锁

ping -n 2 127.0.0.1nul

三、脚本参数初始化

代码如下:

set appName=TestAndroid.apk ::被测程序名称

set pkgName=com.example.testandroid ::被测程序包名

set openName=com.example.testandroid.MainActivity ::被测试程序主activity

set "times=%1" ::测试次数,脚本传入参数

xcopy blat.exe C:\Windows\System32\ /Y ::将邮件工具复制到系统文件夹下,需关闭360卫士

四、循环执行安装打开关闭卸载

echo 测试开始source.txt ::创建一个source文件记录日志

for /l %%a in (1,1,%times%) do (

adb install TestAndroid.apk ::安装apk

adb shell am start -W -n %pkgName%/%openName% ::打开apk

call cmd /c close.bat %pkgName% ::关闭apk

adb uninstall %pkgName% ::卸载apk

adb logcat -d |findstr "^D/k.*}\" ::过滤logcat,获取需要的内容

adb logcat -c ::清除logcat日志

taskkill /f /im adb.exe)source.txt ::结束adb进程,防止占用source文件

::每次操作日志都记录在source中

五、处理source.txt提取关键信息,并发送邮件

六、设置windows定时任务,参数填写为测试次数,完成。

关于android发邮件代码和android邮件客户端的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/10508.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载