webForumDet fria alternativet

Javamail API kolla badmail

Java

4 svar · 289 visningar · startad av tosses

Medlem sedan aug. 2003190 inlägg
Frågan#1

Hej!

Finns det nåt bra sätt att kolla om mailet gått fram?
Eller snarare om det inte gick att leverera?
Jag kör med IIS smtp-tjänst och JSP, javamail API.

Medlem sedan juli 2001434 inlägg
#2

Kolla här

http://java.sun.com/products/javamail/javadocs/javax/mail/Transport.html#send(javax.mail.Message)

Det kastas ett SendFailedException om det inet går bra. Fånga upp det om du vill hantera det.

Medlem sedan aug. 2003190 inlägg
#3

Det här SendFailedException, kommer det tillbaka ifall mailet inte kan levereras. T.ex. om mailadressen inte finns osv...

Medlem sedan sep. 2001961 inlägg
#4

Nope, det kan inte applikationen inte veta. Från det att du har lämnat över mailet till mailservern är det serverns problem.

Det du vill ha är snarare "MailDeliveryException". Det skulle innebära att mailservar skulle behöva hålla reda på vem som skickade mailet och sedan kasta ett exception.

Vi har en webapplikation som skickar bekräftelsemail. Den skickar detta med en speciell mail-adress. Varje mail får ju ett eget id som returneras av mailservern. Detta lagras i en databas tillsammans med info om vad som mailades och av vem. Om något går fel så får den boxen ett mail. Denna mailbox pollar vi med ca 10 minuters mellanrum. Om något skulle gå fel, t.ex. att man inte kan skicka till "kunden" för att det är fel mailadress så skrivs ett meddelande till den som är ansvarig för funktionen (t.ex. orderbekräftelser).

Stökig lösning men den funkar förvånandsvärt bra.

/Lime

Medlem sedan aug. 2003190 inlägg
#5

Men är det inte så att smtpservern får tillbaka mailet och lägger det i badmailmappen eller nåt?? och på så sätt kan man lyfta det från den mappen ?? kanske ??

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)