Tento zpusob je nebezpecny, pokud na IP adresu neexistuje MX nebo reverzni zaznam (ted si presne nepamatuju, ktery typ zaznamu byl treba). SMTP server muze tento mail odmitnout a vetsina serveru to udela. Petr Prochazka
2009/8/21 Tomáš Procházka <[email protected]> > Posílám to přes Apirin SMTP server, takto: > > Properties props = System.getProperties(); > String from = "...from email..."; > Session session = Session.getInstance(props, null); > MimeMessage mailmessge = new MimeMessage(session); > > String email = "...to email..."; > > mailmessge.setSentDate(Calendar.getInstance().getTime()); > mailmessge.setRecipients(Message.RecipientType.TO, new > InternetAddress[]{new InternetAddress(email)}); > mailmessge.setFrom(new InternetAddress(from)); > mailmessge.setSubject("Testování zpráva - ěščřžýáíé"); > mailmessge.setContent("<html><body><h1>Nadpis ěščřžýáíé</h1><p>Text > odstavce</p></body></html>", "text/html; charset=UTF-8"); > > MailQue mq = MailQueueProvider.getInstance(); > mq.queMail(mailmessge); > > Nepoužívám tedy žádný existující SMTP server, přímo má aplikace se > chová jako SMTP server. > > MailQueueProvider.getInstance(); > > pouze vytváří instanci fronty a nastavuje watcher > > INSTANCE = new MailQue(); > INSTANCE.addWatcher(new DeliveryWatcher()); > > > > --------------------------- Původní zpráva --------------------------- > Odesilatel: Martin Kuba <[email protected]> > Předmět: fronta pro zpracování dlouhých udílosti ve webovém kontejneru > Datum: 20. srpna 2009, 10:49:32 (GMT +0200) > Přílohy: <none> > msgid:[email protected]<msgid%[email protected]> > > M> Tomáš Procházka napsal(a): > >> Díky za reakci. Já si celou dobu myslel, že SMTP doručuje zprávy přímo > do schránek. > > >> Nicméně zkoušel jsem pár domén, posílat na ně maily. A vždy jsem na > neexistující email dostal informací, že schránka neexistuje. Zkoušel jsem u > většiny i existující email a naopak mi to oznámilo doručení, email vždy > přišel. Zkoušel jsem ibm.com, dvě české velké vysoké školy a několik > nejznámějších free emailových serverů > > >> Zde je seznam testovaných domén: > > >> @ibm: > > >> com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 < > [email protected]>... User unknown > > M> Přes jaký SMTP server to odesíláte ? Já když udělám v kódu > > M> InternetAddress[] mailto = {new > M> InternetAddress("[email protected]","Neexistujici ucet","UTF-8")}; > > M> Transport trans = session.getTransport("smtp"); > M> trans.connect("relay.muni.cz", 25, null, null); > M> try { > M> trans.sendMessage(msg, mailto); > M> } catch (SendFailedException sfex) { > M> ... > > M> tak mi to žádnou vyjímku nevyhodí, a když navíc zaregistruji > M> TransportListener tak to na něm dokonce zavolá messageDelivered(). > > M> A až potom dojde na moji adresu email s > > M> ----- The following addresses had permanent fatal errors ----- > M> <[email protected]> > M> (reason: 550 5.1.1 <[email protected]>... User unknown) > > M> Čili můj program to předá SMTP serveru na relay.muni.cz, > M> ten to přijme, kontaktuje SMTP server v ibm.com, ten zprávu > M> odmítne doručit a tak relay.muni.cz pošle e-mail na adresu odesílatele, > M> že nemůže zprávu doručit. Ale z hlediska SMTP v JavaMailu to bylo > odesláno. > > M> Makub > > ------------------------ Konec původní zprávy ------------------------ > > -- > --------------------------------------------------------------------- > Tomáš Procházka > > > E-mail: [email protected] > WWW: http://www.atomsoft.cz > ICQ: 87147320 > --------------------------------------------------------------------- > >
