16 | | private static final Logger log = Logger.getLogger(HromadnaZprava.class.getName()); |
17 | | /** Předmět zprávy */ |
18 | | private String predmet; |
19 | | /** Adresa a případně jméno odesílatele */ |
20 | | private InternetAddress odesilatel; |
21 | | /** Zda má být zpráva odeslána jako HTML nebo prostý text */ |
22 | | private boolean formatHTML = false; |
23 | | /** Tělo zprávy - prostý text */ |
24 | | private String text; |
25 | | /** Všichni příjemci této zprávy */ |
26 | | private ArrayList<InternetAddressKomu> prijemci = new ArrayList<InternetAddressKomu>(); |
27 | | /** Hlavička Reply-to */ |
28 | | private InternetAddress odpovedetKomu; |
| 17 | public enum FORMÁT { |
30 | | public String getPredmet() { |
31 | | return predmet; |
32 | | } |
| 19 | XHTML, |
| 20 | PROSTÝ_TEXT, |
| 21 | OBOJE |
| 22 | } |
| 23 | private static final Logger log = Logger.getLogger(HromadnaZprava.class.getName()); |
| 24 | /** Předmět zprávy */ |
| 25 | private String predmet; |
| 26 | /** Adresa a případně jméno odesílatele */ |
| 27 | private InternetAddress odesilatel; |
| 28 | /** Zda má být zpráva odeslána jako HTML nebo prostý text */ |
| 29 | private FORMÁT formát = FORMÁT.PROSTÝ_TEXT; |
| 30 | /** Tělo zprávy - prostý text */ |
| 31 | private String text; |
| 32 | /** Všichni příjemci této zprávy */ |
| 33 | private ArrayList<InternetAddressKomu> prijemci = new ArrayList<InternetAddressKomu>(); |
| 34 | /** Hlavička Reply-to */ |
| 35 | private InternetAddress odpovedetKomu; |
74 | | /** |
75 | | * Pokud má zpráva více přijemců, než je limit povolený SMTP serverem, |
76 | | * rozdělí se zpráva na více dílčích zpráv. |
77 | | * @param limit maximální počet příjemců jedné zprávy (omezení SMTP serveru) |
78 | | */ |
79 | | public Collection<HromadnaZprava> getDilciZpravy(int limit) { |
80 | | Collection<HromadnaZprava> zpravy = new ArrayList<HromadnaZprava>(); |
| 73 | public void pridejPrijemce(Collection<InternetAddressKomu> prijemci) { |
| 74 | if (prijemci == null) { |
| 75 | log.log(Level.FINER, "Prázdná množina příjemců – nic nepřidáme"); |
| 76 | } else { |
| 77 | this.prijemci.addAll(prijemci); |
| 78 | } |
| 79 | } |
82 | | if (limit < getPrijemci().size()) { |
83 | | /** Zprávu je potřeba rozdělit */ |
84 | | try { |
85 | | HromadnaZprava dilciZprava = (HromadnaZprava) clone(); |
86 | | dilciZprava.setPrijemci(null); |
| 81 | /** |
| 82 | * Pokud má zpráva více přijemců, než je limit povolený SMTP serverem, |
| 83 | * rozdělí se zpráva na více dílčích zpráv. |
| 84 | * |
| 85 | * @param limit maximální počet příjemců jedné zprávy (omezení SMTP serveru) |
| 86 | */ |
| 87 | public Collection<HromadnaZprava> getDilciZpravy(int limit) { |
| 88 | Collection<HromadnaZprava> zpravy = new ArrayList<HromadnaZprava>(); |
99 | | if (dilciZprava.getPrijemci().size() > 0) { |
100 | | /** |
101 | | * Počet příjemců není násobkem limitu, |
102 | | * takže nakonci ještě někteří zbyli. |
103 | | * Z nich budou příjemci pro poslední dílčí zprávu. |
104 | | */ |
105 | | zpravy.add(dilciZprava); |
106 | | } |
| 100 | if (dilciZprava.getPrijemci().size() == limit) { |
| 101 | zpravy.add(dilciZprava); |
| 102 | dilciZprava = (HromadnaZprava) clone(); |
| 103 | dilciZprava.setPrijemci(null); |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | if (dilciZprava.getPrijemci().size() > 0) { |
| 108 | /** |
| 109 | * Počet příjemců není násobkem limitu, |
| 110 | * takže nakonci ještě někteří zbyli. |
| 111 | * Z nich budou příjemci pro poslední dílčí zprávu. |
| 112 | */ |
| 113 | zpravy.add(dilciZprava); |
| 114 | } |
109 | | } catch (CloneNotSupportedException ex) { |
110 | | /** Tohle by nikdy nemělo nastat */ |
111 | | log.log(Level.SEVERE, "Hromandou zprávu se nepodařilo naklonovat - divné.", ex); |
112 | | zpravy.add(this); |
113 | | } |
114 | | } else { |
115 | | /** Zprávu má málo příjemců - můžeme ji odeslat najednou */ |
116 | | zpravy.add(this); |
117 | | } |
| 117 | } catch (CloneNotSupportedException ex) { |
| 118 | /** Tohle by nikdy nemělo nastat */ |
| 119 | log.log(Level.SEVERE, "Hromandou zprávu se nepodařilo naklonovat - divné.", ex); |
| 120 | zpravy.add(this); |
| 121 | } |
| 122 | } else { |
| 123 | /** Zprávu má málo příjemců - můžeme ji odeslat najednou */ |
| 124 | zpravy.add(this); |
| 125 | } |