package Visual_DVM_2021.Passes.All; import Repository.EmailMessage; import Repository.Server.ServerCode; import Repository.Server.ServerExchangeUnit_2021; import Repository.Subscribes.Subscriber; import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass; import java.util.Vector; //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 { //этот емейл только для клиента. все что он делает отправляет на сервер то. что нужно отправить. @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 targetsNames = new Vector<>(); 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); } } } } String text_ = "Адресаты: "+String.join(", ",targetsNames)+"\n"+ target.text ; //нужно разделить сообщение на несколько одинаковых, по числу адресатов. for (String recipient : target.targets) { EmailMessage part = new EmailMessage(); part.subject = target.subject; part.text = text_; part.targets.add(recipient); part.files.putAll(target.files); Command(new ServerExchangeUnit_2021(ServerCode.Email, "", part)); } } }