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: 有効:真が 必要:真