簡體   English   中英

action_send工作正常……javamailapi在android sendmail函數中不工作

[英]action_send is worked…javamailapi is not worked in android sendmail function

我已經開發了一個發送電子郵件的android應用程序。

在這里,我必須將不止一種產品詳細信息發送給電子郵件。

我用下面的代碼:

  public class InvoiceOrder extends Activity {


        String mGrandTotal;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub  
    super.onCreate(savedInstanceState);
    setContentView(R.layout.invoice);
    Bundle b = getIntent().getExtras();
    //String s= getIntent().getStringExtra("orderid");
    mGrandTotal = b.getString("GrandTotal");

    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("krishnaveniv96@gmail.com","arirajaguru");
                    }
                });

            try {

                Message message = new MimeMessage(session);
                message.setFrom(new InternetAddress("krishnaveni.veeman@mercuryminds.com"));
                message.setRecipients(Message.RecipientType.TO,
                        InternetAddress.parse("mercy.krishnaveni@gmail.com"));
                message.setSubject("Testing Subject");
                message.setSentDate(new Date());

                StringBuilder body = new StringBuilder();
                body.append("<html><body><table>"); 
                for (int i = 0; i < Constants.mItem_Detail
                        .size(); i++) {

                    String title = Constants.mItem_Detail
                            .get(i).get(
                                    SingleMenuItem.KEY_PNAME);

                    String qty = Constants.mItem_Detail.get(i)
                            .get(SingleMenuItem.KEY_QTY);

                    String cost = Constants.mItem_Detail.get(i)
                            .get(SingleMenuItem.KEY_PRICE);

                    String total = Constants.mItem_Detail
                            .get(i).get(
                                    SingleMenuItem.KEY_TOTAL);

                    body.append("<tr>" + "<td>" + title
                            + "</td><td>" + qty + " * " + cost
                            + "</td>" + " = <td>" + total
                            + "  " + "</td></tr>");
                }

                body.append("<tr>" + "<td>" + "Grand Total is:-  "
                        + "</td><td>" + mGrandTotal + " "
                    + "</td></tr>");
                body.append("</table></body></html>"); 
    final Intent emailIntent = new Intent(
                        android.content.Intent.ACTION_SEND);
                emailIntent.setType("text/html");
                emailIntent
                        .putExtra(
                                Intent.EXTRA_EMAIL,
                                new String[] { "mercy.krishnaveni@gmail.com,krishnaveni.veeman@mercuryminds.com" });

                emailIntent.putExtra(
                        android.content.Intent.EXTRA_TEXT,
                        Html.fromHtml(body.toString()));
                startActivity(Intent.createChooser(emailIntent,
                        "Email:")); 
                System.out.println("Done");

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



  });
        }

}

在這里,使用Android應用程序中的ACTION_SEND成功完成了將多種產品發送到電子郵件的操作。

但是我必須使用Java Mail API將多個產品詳細信息發送到電子郵件。

我已經使用javamail api表示單個產品詳細信息僅發送到郵件...但是我必須發送郵件多個產品詳細信息。

這些是我的代碼:

Multipart multipart = new MimeMultipart();
                BodyPart messageBodyPart = new MimeBodyPart();
                for (int i = 0; i < Constants.mItem_Detail
                        .size(); i++) {

                    String title = Constants.mItem_Detail
                            .get(i).get(
                                    SingleMenuItem.KEY_PNAME);

                    String qty = Constants.mItem_Detail.get(i)
                            .get(SingleMenuItem.KEY_QTY);

                    String cost = Constants.mItem_Detail.get(i)
                            .get(SingleMenuItem.KEY_PRICE);

                    String total = Constants.mItem_Detail
                            .get(i).get(
                                    SingleMenuItem.KEY_TOTAL);
                    messageBodyPart.setText(title + qty + cost + total);

                }
            multipart.addBodyPart(messageBodyPart);

            message.setContent(multipart);

                 Transport.send(message);

我的代碼有什么問題。請幫助我。

使用stringbuffer和append后,我得到了輸出。

 StringBuffer sb = new StringBuffer();    
                sb.append("<html><body><table>");

在for循環中:

                    StringBuffer buffer = sb.append("<tr>" + "<td>" + title
                            + "</td><td>" + qty + " * " + cost
                            + "</td>" + " = <td>" + total
                            + "  " + "</td></tr>");
                    messageBodyPart.setDataHandler(new DataHandler( new ByteArrayDataSource(buffer.toString(), "text/html; charset=utf-8")));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM