有人会给比如发送带附件的邮件机器人 [英] Will anyone give example for sending mail with attachment in android

查看:215
本文介绍了有人会给比如发送带附件的邮件机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要开发一个小型的电子邮件应用程序,我有生成CSV和邮件采用了android的CSV文件。我要送这个附件不保存到存储。我在使用文件作家,我的code如下附加的CSV文件中找到难点:

  @覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);

    buttonSend =(按钮)findViewById(R.id.buttonSend);

    textTo =(EditText上)findViewById(R.id.editTextTo);
    textSubject =(EditText上)findViewById(R.id.editTextSubject);
    文字信息=(EditText上)findViewById(R.id.editTextMessage);

    buttonSend.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(视图v){

          。字符串= textTo.getText()的toString();
          。字符串主题= textSubject.getText()的toString();
          字符串消息= textMessage.getText()的toString()。

          意图电子邮件=新的意图(Intent.ACTION_SEND);
          email.putExtra(Intent.EXTRA_EMAIL,新的String [] {到});
          //email.putExtra(Intent.EXTRA_CC,新的String [] {到});
          //email.putExtra(Intent.EXTRA_BCC,新的String [] {到});
          email.setType(文/ CSV);
          email.putExtra(Intent.EXTRA_SUBJECT,学科);
          email.putExtra(Intent.EXTRA_TEXT,消息);
        email.putExtra(Intent.EXTRA_STREAM,generateCsvFile(testdata.csv));

          //需要这样的提示只是电子邮件客户端

          startActivity(Intent.createChooser(电子邮件,选择电子邮件客户端));

        }
    });
}
公共静态的FileWriter generateCsvFile(字符串sFileName)抛出IOException异常
   {
       FileWriter的作家;
       作家=新的FileWriter(sFileName);
       writer.append(显示名称);
       writer.append(,);
       writer.append(时代);
       writer.append('\ N');

       writer.append(RajeshV);
       writer.append(,);
       writer.append(26);
       writer.append('\ N');

       writer.append(Mrithula);
       writer.append(,);
       writer.append(29);
       writer.append('\ N');

      返回作家;
    }
 

}

我在这一行的问题:

  email.putExtra(Intent.EXTRA_STREAM,generateCsvFile(testdata.csv));
 

解决方案

我有工作code

  @覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);

    buttonSend =(按钮)findViewById(R.id.buttonSend);

    textTo =(EditText上)findViewById(R.id.editTextTo);
    textSubject =(EditText上)findViewById(R.id.editTextSubject);
    文字信息=(EditText上)findViewById(R.id.editTextMessage);

    buttonSend.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(视图v){

            。字符串= textTo.getText()的toString();
            。字符串主题= textSubject.getText()的toString();
            字符串消息= textMessage.getText()的toString()。

            意图I =新的意图(Intent.ACTION_SEND);
            i.setType(纯/文);
            文件数据= NULL;
            尝试 {
                日期dateVal =新的日期();
                字符串文件名= dateVal.toString();
                数据= File.createTempFile(报告,名为.csv);
                FileWriter的输出=(的FileWriter)GenerateCsv.generateCsvFile(
                        数据,名称,数据1);
                i.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(数据));
                i.putExtra(Intent.EXTRA_EMAIL,新的String [] {到});
                i.putExtra(Intent.EXTRA_SUBJECT,学科);
                i.putExtra(Intent.EXTRA_TEXT,消息);
                startActivity(Intent.createChooser(我,电子邮件));

            }赶上(IOException异常E){
                e.printStackTrace();
            }

        }
    });
}

公共类GenerateCsv {
    公共静态的FileWriter generateCsvFile(文件sFileName,串fileContent){
        FileWriter的作家= NULL;

        尝试 {
            作家=新的FileWriter(sFileName);
            writer.append(fileContent);
                         writer.flush();

        }赶上(IOException异常E){
            // TODO自动生成的catch块
            e.printStackTrace();
        }最后
        {
            尝试 {
                writer.close();
            }赶上(IOException异常E){
                // TODO自动生成的catch块
                e.printStackTrace();
            }
        }
        返回作家;
    }
}

加入这一行的Andr​​oidManifest.xml文件:

  <使用-权限的Andr​​oid:名称=android.permission.WRITE_EXTERNAL_STORAG​​E>< /使用-P
 

I need to develop a small Email Application which i have to generate CSV and mail that CSV document using android. I have to send this attachment without saving into storage. I found difficult in attaching the CSV file using file writer and my code as follows :

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonSend = (Button) findViewById(R.id.buttonSend);

    textTo = (EditText) findViewById(R.id.editTextTo);
    textSubject = (EditText) findViewById(R.id.editTextSubject);
    textMessage = (EditText) findViewById(R.id.editTextMessage);

    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

          String to = textTo.getText().toString();
          String subject = textSubject.getText().toString();
          String message = textMessage.getText().toString();

          Intent email = new Intent(Intent.ACTION_SEND);
          email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
          //email.putExtra(Intent.EXTRA_CC, new String[]{ to});
          //email.putExtra(Intent.EXTRA_BCC, new String[]{to});
          email.setType("text/csv");
          email.putExtra(Intent.EXTRA_SUBJECT, subject);
          email.putExtra(Intent.EXTRA_TEXT, message);
        email.putExtra(Intent.EXTRA_STREAM,generateCsvFile("testdata.csv"));

          //need this to prompts email client only

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

        }
    });
}
public static FileWriter generateCsvFile(String sFileName) throws IOException
   {
       FileWriter writer;
       writer = new FileWriter(sFileName);
       writer.append("DisplayName");
       writer.append(',');
       writer.append("Age");
       writer.append('\n');

       writer.append("RajeshV");
       writer.append(',');
       writer.append("26");
       writer.append('\n');

       writer.append("Mrithula");
       writer.append(',');
       writer.append("29");
       writer.append('\n');

      return writer;
    }

}

I got problem in this line :

email.putExtra(Intent.EXTRA_STREAM,generateCsvFile("testdata.csv"));

解决方案

I got Working Code

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonSend = (Button) findViewById(R.id.buttonSend);

    textTo = (EditText) findViewById(R.id.editTextTo);
    textSubject = (EditText) findViewById(R.id.editTextSubject);
    textMessage = (EditText) findViewById(R.id.editTextMessage);

    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            String to = textTo.getText().toString();
            String subject = textSubject.getText().toString();
            String message = textMessage.getText().toString();

            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("plain/text");
            File data = null;
            try {
                Date dateVal = new Date();
                String filename = dateVal.toString();
                data = File.createTempFile("Report", ".csv");
                FileWriter out = (FileWriter) GenerateCsv.generateCsvFile(
                        data, "Name,Data1");
                i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(data));
                i.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
                i.putExtra(Intent.EXTRA_SUBJECT, subject);
                i.putExtra(Intent.EXTRA_TEXT, message);
                startActivity(Intent.createChooser(i, "E-mail"));

            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    });
}

public class GenerateCsv {
    public static FileWriter generateCsvFile(File sFileName,String fileContent) {
        FileWriter writer = null;

        try {
            writer = new FileWriter(sFileName);
            writer.append(fileContent);
                         writer.flush();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally
        {
            try {
                writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return writer;
    }
}

Add this line in AndroidManifest.xml file:

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-p

这篇关于有人会给比如发送带附件的邮件机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆