• 关于Android发送邮件


    Google 在发表 Android 手机平台时,强调的是超强大的网络支持能力,因此,无论通过 GPRS、3G的电信网络或者是Wifi的无线WLAN网络,都能够发EMAIL。  
      
      发送邮件中使用的Intent 行为为 android.content.Intent.ACTION_SEND 。实际上在 Android 上使用的邮件发送服务是调用Gmail程序,而非直接使用SMTP的Protocol 。现在介绍本篇需要使用到的功能清单:

    •验证用户输入是否为正确的邮箱格式;
    •用户可以先把手动输入邮箱,也可以长按邮箱文本框跳到联系人那里找到联系人,得到联系人的邮箱,后返回;
    •发送邮件。

    •邮件发送程序并不复杂,主要是在 EditText 、Button 控件的构建,通过构造一个自定义的 Intent(android.content.Intent.ACTION_SEND)作为传送 Email 的 Activity 之用,在该Intent中,还必须使用 setType()来决定 Email的格式,使用 putExtra() 来置入寄件入(EXTRA_EMAIL)、主题(EXTRA_SUBJECT)、邮件内容(EXTRA_TEXT)以及其他Email的字段(EXTRA_BCC、EXTRA_CC)。代码如下:

            myButton.setOnClickListener(new OnClickListener() {
               
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                
                    Intent mailIntent=new Intent(android.content.Intent.ACTION_SEND);
                   
                    mailIntent.setType("plain/test");
                    strEmailReciver=new String[]{ myEditText.getText().toString() };
                   
                    strEmailCC=new String[]{myEditText2.getText().toString()};
                   
                    strEmailSubject=myEditText3.getText().toString();
                   
                    strEmailBody=myEditText4.getText().toString();
                    mailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver);
                   
                    mailIntent.putExtra(android.content.Intent.EXTRA_CC, strEmailCC);
                   
                    mailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, strEmailSubject);
                   
                    mailIntent.putExtra(android.content.Intent.EXTRA_TEXT, strEmailBody);
                   
                startActivity(Intent.createChooser(mailIntent, getResources().getString(R.string.send)));
                   
                   
                }
            });

    在Android中发送Email有许多种写法,本篇例子只是其中之一。下面把其他的方法共享给大家:

    • 方法二
    Uri uri=Uri.parse("mailto:terryyhl@gmail.com");
                Intent MymailIntent=new Intent(Intent.ACTION_SEND,uri);
                startActivity(MymailIntent);

    •方法三
    Intent testintent=new Intent(Intent.ACTION_SEND);
                String[] tos={"terryyhl@gmail.com"};
                String[] ccs={"kalaicheng@hotmail.com"};
                testintent.putExtra(Intent.EXTRA_EMAIL, tos);
                testintent.putExtra(Intent.EXTRA_CC, ccs);
                testintent.putExtra(Intent.EXTRA_TEXT, "这是内容");
                testintent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
                testintent.setType("message/rfc822");
                startActivity(Intent.createChooser(testintent, "发送"));

    •方法四,传附件,这里以SD卡的音乐文件为例
    Intent testN=new Intent(Intent.ACTION_SEND);
                  testN.putExtra(Intent.EXTRA_SUBJECT, "标题");
                  testN.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/music.mp3");
                  startActivity(Intent.createChooser(testN, "发送"));

         
    •使用javamail。这里我就不介绍javamail的实现方法了。

    •由于目前模拟器未内置Gmail Client端程序,因此发送Email程序在送出数据后,模拟器上会发出 “No Application can perform this action”,本人没有Android手机,故无法测试,还请有Android手机的园友能够在测试后,将结果反馈给我,谢谢。

    作者“软件技术分享”
     

  • 相关阅读:
    窗体的扩展样式GWL_EXSTYLE用于SetWindowLong
    内存映射对于大文件的使用
    Delphi实现全局鼠标钩子
    全局键盘钩子(WH_KEYBOARD)
    实现拦截API的钩子(Hook)
    JBoss + EJB3 + MySql : 开发第一个EJB
    取PE文件的引入表和导出表
    Webbrowser中模拟连接点击(非鼠标模拟)
    打造无DLL版穿透防火墙Downloader
    Delphi 常用属性+方法+事件+代码+函数
  • 原文地址:https://www.cnblogs.com/mochaMM/p/5164185.html
Copyright © 2020-2023  润新知