从我的Android应用程序发送邮件

时间:2013-01-04 03:55:41

标签: java android android-listview sendmail

我必须开发一个Android应用程序。 在这里,我必须从我的Android应用程序发送邮件。

我必须从我的Android应用程序发送邮件listview vlaues。

这是我的android代码:

public class InvoiceOrder extends Activity {


String mGrandTotal,mTitle,total,mCost;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub  
    super.onCreate(savedInstanceState);
    setContentView(R.layout.invoice);
    ListView mLstView1 = (ListView) findViewById(R.id.listView1);


    CustomerAdapter mViewCartAdpt = new CustomerAdapter(
            InvoiceOrder.this);
    mLstView1.setAdapter(mViewCartAdpt);

            Button login = (Button) findViewById(R.id.mBtnSubmit);
            login.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("message/rfc822");
            i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"demo@mercuryminds.com"});
            i.putExtra(Intent.EXTRA_SUBJECT, "Testing");
            i.putExtra(Intent.EXTRA_TEXT   , "mLstView1");
            try {
                startActivity(Intent.createChooser(i, "Send mail..."));
            } catch (android.content.ActivityNotFoundException ex) {
                Toast.makeText(InvoiceOrder.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
            }
         }
      });
        }

列表视图显示在这些活动上。我可以将listview值发送到email.please给我解决方案。

修改

您好我自动发送邮件。所以我使用了javamailapi。

现在我改变了我的代码:

public class InvoiceOrder extends Activity {


String mGrandTotal,mTitle,total,mCost;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub  
    super.onCreate(savedInstanceState);
    setContentView(R.layout.invoice);
    ListView mLstView1 = (ListView) findViewById(R.id.listView1);


    CustomerAdapter mViewCartAdpt = new CustomerAdapter(
            InvoiceOrder.this);
    mLstView1.setAdapter(mViewCartAdpt);

            Button login = (Button) findViewById(R.id.mBtnSubmit);
            login.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
             Properties props = new Properties();
                props.put("mail.smtp.host", "smtp.gmail.com");
                props.put("mail.smtp.socketFactory.port", "465");
                props.put("mail.smtp.socketFactory.class",
                        "javax.net.ssl.SSLSocketFactory");
                props.put("mail.smtp.auth", "true");
                props.put("mail.smtp.port", "465");

                Session session = Session.getDefaultInstance(props,
                    new javax.mail.Authenticator() {
                        protected PasswordAuthentication getPasswordAuthentication() {
                            return new PasswordAuthentication("mroslinmhary@gmail.com","fg565jhjjh");
                        }
                    });

                try {

                    Message message = new MimeMessage(session);
                    message.setFrom(new InternetAddress("krishnaveni.veeman@mercuryminds.com"));
                    message.setRecipients(Message.RecipientType.TO,
                            InternetAddress.parse("demo@mercuryminds.com"));
                    message.setSubject("Testing Subject");
                    message.setContent("This is your product name : "+
                            "Hi Krishna" +"<br></br>This is your price : "+ "Hi veni", "text/html; charset=utf-8");
                    Transport.send(message);

                    System.out.println("Done");

                } catch (MessagingException e) {
                    throw new RuntimeException(e);
                }
               }



      });

现在我必须自动将listview发送到电子邮件。我可以在这里设置内容。请给我一些想法。

4 个答案:

答案 0 :(得分:2)

您需要一个可以接收Web命令(可能是REST)的Web应用程序,该命令将从您的应用程序接收请求并发送电子邮件。

例如,如果您的服务器位于example.com,那么您可以使用以下URL来发送邮件的服务:

example.com/sendmail/和您的POST变量将包含以下变量: subject,fromAddress,toAddress,content等。

如果您可以使用基于Web的语言(如PHP,Ruby,Python甚至Java)编程,那么您可以编写此文件,然后只需从您的应用程序发送请求。

答案 1 :(得分:0)

使用以下代码发送电子邮件

    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.setType("plain/text");  
       emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"demo@mercuryminds.com"});
       emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject");
       emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "body text"); 
       startActivity(emailIntent);  

答案 2 :(得分:0)

尝试在'message.setContent('函数中)设置要作为电子邮件发送的数据。这将被添加到电子邮件正文中。(在列表视图中迭代并在添加之前将数据转换为字符串变量电子邮件消息)这就是你想要的吗?。

答案 3 :(得分:0)

为了从Android向用户发送电子邮件,用户可以通过两种方式进行操作 方法1:
使用Intent。代码如下:

send = (Button) findViewById(R.id.emailsendbutton);

address = (EditText) findViewById(R.id.emailaddress);

subject = (EditText) findViewById(R.id.emailsubject);

emailtext = (EditText) findViewById(R.id.emailtext);

send.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub
    try {
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

emailIntent.setType("image/png");

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

emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject.getText());
//emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext.getText());

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+ getPackageName() + "/" + R.drawable.ic_launcher));

Sendingmail2.this.startActivity(Intent.createChooser(emailIntent,"Send mail..."));
    }
    catch (Exception e) {
        Log.e("", "sendPlainTextEmail() failed to start activity.", e);
        //Toast.makeText(this, "No handler", Toast.LENGTH_LONG).show();
        Toast.makeText(getApplicationContext(),"No handler", Toast.LENGTH_LONG).show();
    }
}
});


方法2: 通过输入静态gmail ID和密码将电子邮件直接发送到某个电子邮件ID 请遵循以下URL:
http://davanum.wordpress.com/2007/12/22/android-send-email-via-gmail-actually-via-smtp/
或者可以通过在此处提供您的电子邮件ID来询问代码,并将向我发送我为直接发送电子邮件所做的代码。