<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                一個項目的需求,之前一篇博客寫過如何生成excel,生成后的excel要發送給用戶(指定郵箱)。奇葩的后臺說這個發送也不好實現,要客戶端來做。也就只能做了(又是分分鐘要來個螺旋王)。本篇博客就簡單介紹下android如何發送郵件。結果圖如下:? ![](https://box.kancloud.cn/2016-04-08_570771b78d0a2.jpg)? 這里我說的只是一種方法,其實發送郵件的方式有很多。在之前的那個生成excel的項目繼續擴展。沒看過之前項目的可以先看下:[android生成excel](http://blog.csdn.net/u014486880/article/details/50605659)。? 首先要導入發送郵件的相應jar包,有三個,分別是activation.jar,additional.jar和mail.jar。這些jar包能在后面的工程中找到。如圖:? ![](https://box.kancloud.cn/2016-04-08_570771b7a24f0.jpg)? 然后寫一個發送郵件工具類來寫發送郵件的底層代碼,先把代碼貼出來。 ~~~ public class EmailUtil { class MyAuthenticator extends javax.mail.Authenticator { private String strUser; private String strPwd; public MyAuthenticator(String user, String password) { this.strUser = user; this.strPwd = password; } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(strUser, strPwd); } } public void sendMail(String toMail, String fromMail, String server, String username, String password, String title, String body, String attachment) throws Exception { Properties props = System.getProperties();// Get system properties //添加郵箱地址。 props.put("mail.smtp.host", server);// Setup mail server props.put("mail.smtp.auth", "true"); //添加郵箱權限 MyAuthenticator myauth = new MyAuthenticator(username, password);// Get Session session = Session.getDefaultInstance(props, myauth); MimeMessage message = new MimeMessage(session); // Define message //設置目的郵箱 message.setFrom(new InternetAddress(fromMail)); // Set the from address message.addRecipient(Message.RecipientType.TO, new InternetAddress( toMail));// Set //設置郵件的標題 message.setSubject(title);// Set the subject // message.setText(MimeUtility.encodeWord(body));// Set the content MimeMultipart allMultipart = new MimeMultipart("mixed"); MimeBodyPart attachPart = new MimeBodyPart(); //添加附件 FileDataSource fds = new FileDataSource(attachment); attachPart.setDataHandler(new DataHandler(fds));//附件 attachPart.setFileName(MimeUtility.encodeWord(fds.getName())); MimeBodyPart textBodyPart = new MimeBodyPart(); //添加郵件內容 textBodyPart.setText(body); allMultipart.addBodyPart(attachPart); allMultipart.addBodyPart(textBodyPart); message.setContent(allMultipart); message.saveChanges(); Transport.send(message);//發送郵件 } } ~~~ toMail:是發送目的的郵箱。? fromMail:是用于發送的郵箱。? server:固定寫為”smtp.mxhichina.com”。這是阿里云企業郵箱地址。? account:指用于發送郵件的郵箱賬號。? password:指用于發送郵件的郵箱密碼。? title,body:不用說,就是郵件的題目和內容。? attachment:表示上傳的附件在手機中的路徑。? 代碼都加了注釋,還是比較清楚的。重點看下添加附件部分,因為內容有兩部分,有文字內容和附近,所以要用MimeMultipart 來實現兩部分的添加。MimeBodyPart生于添加一部分的內容,setText方法用于添加方字內容。setFileName用于添加附件內容,具體的看代碼。? 接下來就是發送郵件的業務層代碼了。看下MainActivity代碼: ~~~ public class MainActivity extends Activity { Button btn,btn1; List<Order> orders = new ArrayList<Order>(); String path; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int length = Const.OrderInfo.orderOne.length; for(int i = 0;i < length;i++){ Order order = new Order( Const.OrderInfo.orderOne[i][0], Const.OrderInfo.orderOne[i][1], Const.OrderInfo.orderOne[i][2], Const.OrderInfo.orderOne[i][3]); orders.add(order); } btn = (Button)super.findViewById(R.id.btn); btn1 = (Button)super.findViewById(R.id.btn1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String fileName = "excel_"+new Date().toString(); path = "/MailDemo/" + fileName ; try { ExcelUtil.writeExcel(MainActivity.this, orders, path); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String pathString = getExternalFilesDir(null).getPath()+path; sendMail("635596741@qq.com", "訂單", "郵件由系統自動發送,請不要回復!", pathString+ ".xls"); Toast.makeText(MainActivity.this, "郵件發送成功", Toast.LENGTH_SHORT).show(); } }); } public void sendMail(final String toMail, final String title, final String body, final String path){ new Thread(new Runnable() { public void run() { EmailUtil emailUtil = new EmailUtil(); try { String account = "xxxx@123.com(your mail)"; String password = "xxx(your password)"; emailUtil.sendMail(toMail, account, "smtp.mxhichina.com", account, password, title, body, path); } catch (Exception e) { e.printStackTrace(); } } }).start(); } } ~~~ 重點看下sendMail方法,其實很簡單,就是把對應的參數往里傳,分別傳入你的郵箱密碼、你要發送的目的郵件、郵件的內容題目及附件路徑。但是注意要開啟一個線程來發郵件,因為發郵件的時間可能比較長,在主線程中發的話可以會導致NAR。這里還有一點要注意的是傳入附件的路徑要和excel生成的路徑一致,才能找到文件。如果是批量發送郵件,就要考慮使用線程池,但如果是批量發的話,一般都是在后臺進行處理。? 到此發送郵件的功能就實現了。還是比較簡單實用的。? **[項目下載](https://github.com/reallin/Android_Mail)**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看