
Я хочу отправлять электронные письма на адрес с помощью программы Java (используя Javamail) через SMTP. На самом деле она отправляет электронные письма по назначению. Проблема в том, что тело письма каждый раз отправляется не полностью. Учитывая, что тело моего письма извлекается из базы данных, вот мой код:
public static void smail(Connection con, String state) { Заявление stmt; пытаться { stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet res = stmt.executeQuery("выберите ID, Time_C из производства, где State="+state+"'"); пока(res.next()) { Идентификатор строки = res.getString("1"), tc = res.getString("2"); тестовая почта smtpMailSend = new testmail(); Строка sub="Оповещение "+состояние; Строка mes=" ID "+id +"\n Статистика: "+state +"\n время: "+tc; smtpMailSend.sMail(sub,mes); } } поймать(Исключение e) { e.printStackTrace(); стмт = ноль; } } 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"); Аутентификатор auth = new SMTPAuthenticator(); Сеанс session = Session.getInstance(props, auth); session.setDebug(истина); Сообщение msg = new MimeMessage(session); msg.setText(текст); msg.setSubject(obj); msg.setFrom(новый Интернет-адрес(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()); транспорт.закрыть(); }
Итак, после первых 2 записей, у меня на почте "ID: 12345" без времени и штата.
Спасибо за вашу помощь
решение1
Можете ли вы проверить, что тело сообщения остается нетронутым каждый раз, когда оно покидает сервер-отправитель на вашей стороне? Если это так, то что-то на стороне получателя может удалять содержимое.