郵送でspringBoot

1. [追加の依存

<依存> 
      <groupIdを> org.springframework.boot </ groupIdを> 
      <たartifactId>春・ブート・スターターメール</たartifactId> 
</依存関係>

2.独自の実装

 

 パブリック文字列sendWord(){ 
        ユーザーUSER1 = 新しいユーザー(); 
        user1.setId( "1" )。
        user1.setUsername( "李四" ); 
        user1.setSex( "男" ); 
        ユーザーuser2の = 新しいユーザー(); 
        user2.setId( "2" ); 
        user2.setUsername( "小王" ); 
        user2.setSex( "女" ); 
        ユーザーUSER3 = 新しいユーザー(); 
        user3.setId( "3" )。
        user3.setUsername( "
        user3.setSex( "男" ); 
        リスト <ユーザ>リスト= 新しい ArrayListを<> (); 
        list.add(USER1)。
        list.add(USER2)。
        list.add(USER3)。
        試す{ 
            ブックWB = 新しい SXSSFWorkbook(500 )。
            CellStyleスタイル = wb.createCellStyle(); 
            シートのシート = wb.createSheet()。
            sheet.setColumnWidth( 0、6200 )。
            sheet.setColumnWidth( 1、3800 )。
            sheet.setColumnWidth( 2、6200);
            以下のためにINT I 3 =; I <= 11; I ++ ){ 
                sheet.setColumnWidth(I、 3766 )。

            } 
            行row = sheet.createRow(0 )。
            row.setRowStyle(スタイル); 
            セルCELL0 = row.createCell(0 )。
            cell0.setCellStyle(スタイル); 
            cell0.setCellValue( "ID" )。

            セルCELL1 = row.createCell(1 )。
            cell1.setCellStyle(スタイル); 
            cell1.setCellValue( "姓名" ); 

            セルCELL2 = row.createCell(2); 
            cell2.setCellStyle(スタイル); 
            cell2.setCellValue( "性别" );
            int型 ROWNUM = 1 ; 
            CellStyle cellStyle = wb.createCellStyle()。
            (ユーザーユーザー:リスト){ 
                行R = sheet.createRow(ROWNUM)。
                r.createCell( 0 )。
                セルC0 = r.createCell(0 )。
                c0.setCellStyle(cellStyle)。
                c0.setCellValue(user.getId())。
                セルC1 = r.createCell(1 )。
                c1.setCellStyle(cellStyle)。
                c1.setCellValue(user.getUsername())。
                セルC2、bt.length)。 = r.createCell(2 )。
                c2.setCellStyle(cellStyle)。
                c2.setCellValue(user.getSex())。
                ROWNUM ++ ; 
            } 
            // wb.write(アウト)。
            ByteArrayOutputStreamたBAO = 新しいByteArrayOutputStream(); 
            wb.write(BAOを)。
            baos.flush(); 
            バイト [] BT = baos.toByteArray()。
            InputStreamがある = 新しいれるByteArrayInputStream(BT、0 
            baos.close(); 
            String型の電子メール = "受信者qq.com @" ; 
            のsendmail( "プッシュ保険商品の監査テーブル"、電子メール、 "テキストメッセージ" 、IS);
             リターン "成功" ; 
        } キャッチ(例外E){ 
            E .printStackTrace(); 
        } 
        リターン「エラー」; 
    } 

    / ** 
     * 
     * @paramの電子メール件名の件名
     * @param toMail受信者のメールボックス
     * @paramのメッセージの内容のボディ
     * @paramの添付ファイルがストリーミングコンテンツへ送られます
     * @復帰
     * / 
    パブリック 静的 ブールSENDMAIL(文字列対象文字列toMail、文字列の内容、入力ストリームである){
         ブール isFlag = 試す{ 
            文字列smtpFromMail = "[email protected]"。  // 账号 
            文字列PWD = "パスワード"; // 密码
            int型ポート= 25; // 端口 
            文字列のホスト= "smtp.163.com"。// 邮件服务器地址

            プロパティの小道具 = 新しいプロパティ(); 
            props.put( "mail.smtp.host" ホスト); 
            props.put( "mail.smtp.auth"、 "真"
            セッションsession = Session.getDefaultInstance(小道具)。
            session.setDebug(); 

            で、MimeMessageメッセージ = 新しいで、MimeMessage(セッション)。
            してみてください{ 
                message.setFrom(たInternetAddress(smtpFromMail、 "发件人的名称" ));
                / * 批量发送* / 
//                 たInternetAddress [] = {ADC新たInternetAddress( "[email protected]")、新たInternetAddress( "[email protected]")}。
//                 message.addRecipients(Message.RecipientType.TO、ADC); 
                message.addRecipient(Message.RecipientType.TO、たInternetAddress(toMail)); 
                message.setSubject(被写体)
                message.addHeader( "文字セット"、 "UTF-8" )。

                / * 添加正文内容* / 
                マルチパートのマルチパート = 新しいのMimeMultipart(); 
                BodyPart contentPart = 新しいのMimeBodyPart(); 
                contentPart.setText(コンテンツ)。

                contentPart.setHeader( "Content-Typeの"、 "text / htmlの;のcharset = UTF-8" ); 
                multipart.addBodyPart(contentPart)。

                / * 添加附件* / 
                のMimeBodyPartファイルボディ = 新しいですMimeBodyPart(); 
                データソースソース = 新しい ByteArrayDataSource( "アプリケーション/ msexcel"、です)。
                fileBody.setDataHandler(新しいデータハンドラ(ソース)); 
                文字列fileNameに = "附件の.xlsx" // 中文乱码问题
                fileBody.setFileName(MimeUtility.encodeText(fileNameに)); 
                multipart.addBodyPart(ファイルボディ)。

                message.setContent(マルチ)
                message.setSentDate(新しい日付()); 
                message.saveChanges(); 
                交通輸送= session.getTransport( "SMTP" )。

                transport.connect(ホスト、ポート、smtpFromMail、PWD)。
                transport.sendMessage(メッセージ、message.getAllRecipients())。
                transport.close(); 
                isFlag = ; 
            } キャッチ(例外e){ 
                e.printStackTrace(); 
                isFlag = ; 
            } 
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
        戻りisFlagと、
    }

3. YML配置

サーバー:
  ポート: 8081 
春:
  メール:
    ホスト:SMTP。163 .COM 
    名:XXX @ 163 .COM 
    パスワード:パスワードの
    プロパティ:
      メール:
        SMTP:
          AUTH:
          STARTTLS:
            有効:真が
            必要:

おすすめ

転載: www.cnblogs.com/sjzxxy/p/12130147.html