при отправке сообщений по почте. увеличил число попыток до 5

This commit is contained in:
2023-11-20 23:10:14 +03:00
parent 277de7efe0
commit 94cf1b3841
3 changed files with 37 additions and 31 deletions

5
.idea/workspace.xml generated
View File

@@ -8,9 +8,8 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/MainMenuBar/MainWindow.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/MainMenuBar/MainWindow.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/MainForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/MainForm.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -118,37 +118,45 @@ public abstract class RepositoryServer<D extends Database> {
System.out.println("target=" + target); System.out.println("target=" + target);
if (needsEmail(target)) { if (needsEmail(target)) {
System.out.println("needs email"); System.out.println("needs email");
try { boolean done = false;
MimeMessage message = new MimeMessage(session); int attempts = 5;
message.setFrom(new InternetAddress(Constants.MailAddress)); while (!done && (attempts > 0)) {
message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(target)); try {
message.setSubject(message_in.subject); MimeMessage message = new MimeMessage(session);
Multipart multipart = new MimeMultipart(); message.setFrom(new InternetAddress(Constants.MailAddress));
MimeBodyPart textBodyPart = new MimeBodyPart(); message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(target));
textBodyPart.setText(message_in.text); message.setSubject(message_in.subject);
multipart.addBodyPart(textBodyPart); Multipart multipart = new MimeMultipart();
for (String aName : innerFiles.keySet()) { MimeBodyPart textBodyPart = new MimeBodyPart();
MimeBodyPart attachmentBodyPart = new MimeBodyPart(); textBodyPart.setText(message_in.text);
DataSource source = new FileDataSource(innerFiles.get(aName)); multipart.addBodyPart(textBodyPart);
attachmentBodyPart.setDataHandler(new DataHandler(source)); for (String aName : innerFiles.keySet()) {
attachmentBodyPart.setFileName(aName);
multipart.addBodyPart(attachmentBodyPart);
}
for (File f : directAttachements) {
if (f.exists()) {
MimeBodyPart attachmentBodyPart = new MimeBodyPart(); MimeBodyPart attachmentBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(f); DataSource source = new FileDataSource(innerFiles.get(aName));
attachmentBodyPart.setDataHandler(new DataHandler(source)); attachmentBodyPart.setDataHandler(new DataHandler(source));
attachmentBodyPart.setFileName(f.getName()); attachmentBodyPart.setFileName(aName);
multipart.addBodyPart(attachmentBodyPart); multipart.addBodyPart(attachmentBodyPart);
} }
for (File f : directAttachements) {
if (f.exists()) {
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(f);
attachmentBodyPart.setDataHandler(new DataHandler(source));
attachmentBodyPart.setFileName(f.getName());
multipart.addBodyPart(attachmentBodyPart);
}
}
message.setContent(multipart);
Transport.send(message);
System.out.println("message sent");
done = true;
} catch (Exception ex) {
System.out.println("Исключение во время отправки сообщения абоненту " + Utils.Brackets(target));
ex.printStackTrace();
Utils.sleep(1000);
} finally {
attempts--;
} }
message.setContent(multipart);
Transport.send(message);
System.out.println("message sent");
} catch (Exception ex) {
System.out.println("Исключение во время отправки сообщения абоненту " + Utils.Brackets(target));
ex.printStackTrace();
} }
} else System.out.println("does not need email"); } else System.out.println("does not need email");
} }

View File

@@ -247,8 +247,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Vector<String> assembly_info = (Vector<String>) request.object; Vector<String> assembly_info = (Vector<String>) request.object;
File out = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.out_file).toFile(); File out = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.out_file).toFile();
File err = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.err_file).toFile(); File err = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.err_file).toFile();
Vector<String> targets = new Vector<>();//Arrays.asList(Global.admins_mails)); Vector<String> targets = new Vector<>(Arrays.asList(Global.admins_mails));
targets.add("vmk-post@yandex.ru");
EmailMessage message = new EmailMessage( EmailMessage message = new EmailMessage(
"Выполнена сборка системы SAPFOR", "Выполнена сборка системы SAPFOR",
"Версия: " + assembly_info.get(0) + "\n" + "Статус: " + assembly_info.get(1), "Версия: " + assembly_info.get(0) + "\n" + "Статус: " + assembly_info.get(1),