Files
VisualSapfor/src/_VisualDVM/Passes/All/Email.java

55 lines
2.3 KiB
Java
Raw Normal View History

2024-10-14 12:14:01 +03:00
package _VisualDVM.Passes.All;
import Common.Utils.Utils_;
2024-10-14 15:19:13 +03:00
import _VisualDVM.Passes.Server.ComponentsRepositoryPass;
2024-10-09 22:21:57 +03:00
import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import _VisualDVM.Repository.Subscribes.Subscriber;
import _VisualDVM.Utils;
import java.util.Vector;
2023-09-17 22:13:42 +03:00
//http://java-online.ru/javax-mail.xhtml
//https://javarush.ru/groups/posts/1226-kak-otpravitjh-pisjhmo-iz-java-prilozhenija-s-primerom
public class Email extends ComponentsRepositoryPass<EmailMessage> {
//этот емейл только для клиента. все что он делает отправляет на сервер то. что нужно отправить.
@Override
protected boolean canStart(Object... args) throws Exception {
target = (EmailMessage) args[0];
return true;
}
@Override
protected int getTimeout() {
return 0;
}
@Override
protected void ServerAction() throws Exception {
Vector<String> targetsNames = new Vector<>();
2024-10-14 15:19:13 +03:00
for (String target : target.targets) {
if (server.db.subscribers.containsKey(target)) {
Subscriber subscriber = server.db.subscribers.get(target);
if (subscriber.mailOn != 0) {
String[] data = target.split("@");
if (data.length > 0) {
String tname = data[0];
targetsNames.add(tname);
}
}
}
}
Utils.addDefaultMails(target.targets);
String text_ =
2024-10-14 15:19:13 +03:00
"Адресаты: " + String.join(", ", targetsNames) + "\n" +
target.text;
2023-09-17 22:13:42 +03:00
//нужно разделить сообщение на несколько одинаковых, по числу адресатов.
for (String recipient : target.targets) {
System.out.println(recipient);
2023-09-17 22:13:42 +03:00
EmailMessage part = new EmailMessage();
part.subject = target.subject;
part.text = text_;
2023-09-17 22:13:42 +03:00
part.targets.add(recipient);
part.files.putAll(target.files);
Command(new ServerExchangeUnit_2021(ServerCode.Email, "", part));
}
}
}