
smtp를 통해 Java 프로그램(javamail 사용)이 있는 주소로 이메일을 보내고 싶습니다. 실제로 이메일을 목적지로 보냅니다. 문제는 이메일 본문이 매번 완전히 전송되지 않는다는 것입니다. 내 메일 본문이 데이터베이스에서 추출된다는 점을 고려하면. 내 코드는 다음과 같습니다.
public static void smail(연결 콘, 문자열 상태) { 명령문 stmt; 노력하다 { stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet res = stmt.executeQuery("State='"+state+"'"인 프로덕션에서 ID, Time_C 선택); 동안(res.next()) { 문자열 id=res.getString("1"), tc=res.getString("2"); 테스트메일 smtpMailSend = 새 테스트메일(); String sub="경고 "+상태; String mes=" ID "+id +"\n 통계: "+state +"\n 시간: "+tc; smtpMailSend.sMail(sub,mes); } } 잡기(예외 e) { e.printStackTrace(); stmt = null; } } public void sMail(String obj,String text)에서 MessagingException이 발생합니다. { 속성 props = 새 속성(); props.put("mail.smtp.host", d_host); props.put("mail.smtp.port", d_port); props.put("mail.smtp.starttls.enable","true"); props.put("mail.smtp.debug", "true"); props.put("mail.smtp.auth", "true"); 인증자 인증 = new SMTPAuthenticator(); 세션 세션 = Session.getInstance(props, auth); session.setDebug(true); 메시지 메시지 = 새로운 MimeMessage(세션); msg.setText(text); msg.setSubject(obj); msg.setFrom(new InternetAddress(d_email)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to)); 전송 전송 = session.getTransport("smtps"); Transport.connect(d_host, d_port, d_uname, d_password); Transport.sendMessage(msg, msg.getAllRecipients()); 운송.닫기(); }
그래서 두 번째 첫 번째 기록 이후에 시간이나 상태 없이 "ID: 12345" 메일을 받았습니다.
당신의 도움을 주셔서 감사합니다
답변1
메시지가 보내는 서버를 떠날 때마다 메시지 본문이 손상되지 않았는지 확인할 수 있습니까? 그렇다면 수신자 측의 무언가가 콘텐츠를 제거하고 있을 수 있습니다.