1

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

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

这是我的安卓代码:

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();
            }
         }
      });
        }

列表视图显示在这些活动中。我如何将该列表视图值发送到电子邮件。请给我解决方案。

编辑:

嗨,我已经自动发送邮件了。所以我使用了 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);
                }
               }



      });

现在我必须自动将列表视图发送到电子邮件。我如何在此处设置内容。请给我想法。

4

4 回答 4

2

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

例如,如果您的服务器位于 example.com,那么您可以拥有一个通过如下 URL 发送邮件的服务:

example.com/sendmail/ 并且您的 POST 变量将包含以下变量:主题、fromAddress、toAddress、内容等。

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

于 2013-01-04T03:57:19.320 回答
0

要从 android 向用户发送电子邮件,用户可以通过两种方式进行操作。
方法一:
使用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 来索取代码,并将向您发送我为直接发送电子邮件所做的代码。

于 2013-01-04T07:00:10.810 回答
0

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

于 2013-01-04T06:32:34.610 回答
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);  
于 2013-01-04T04:07:05.027 回答