|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
[Java] Problema JavaMail
Salve a tutti. Ho scritto questa servlet, ma il problema è che l'e-mail arriva 2 volte! Perchè?
Codice:
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Properties;
import java.util.Date;
import javax.mail.Transport;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Address;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
public class TestMailer extends HttpServlet {
private String smtp = "mail.libero.it";
private String mitt = "[email protected]";
private String dest = "[email protected]";
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet TestMail</title>");
out.println("</head>");
out.println("<body>");
try
{
Properties props = System.getProperties();
props.put ("mail.smtp.host", smtp);
Session session = Session.getDefaultInstance (props);
Message message = new MimeMessage (session);
message.setFrom (new InternetAddress (mitt));
message.setRecipient (Message.RecipientType.TO, new InternetAddress (dest));
message.setSubject ("E-mail test");
message.setSentDate (new Date());
message.setText ("Questa è una e-mail di prova");
Transport.send (message);
out.println ("E-mail inviata");
}
catch (Exception exception)
{
out.println ("E-mail NON inviata");
}
out.println("</body>");
out.println("</html>");
out.close();
}
protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
processRequest (request, response);
}
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
processRequest (request, response);
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
perchè hai messo la chiamata a processrequest sia nel doGet che nel doPost?
__________________
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
metti un booleano che viene valorizzato non appena mandi il primo messaggio e metti un controllo su quel booleano prima di mandare il messaggio, così risolvi il problema del doppio messaggio. Quanto al server se hai un account con tin ti basta loggarti al server col tuo account e poi puoi inviare tranquillamente la posta con l'indirizzo mittente che vuoi e a chi vuoi.
__________________
|
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Credo di aver risolto l'arcano mistero:
Il problema è la nuova versione di NetBeans! Se avvio la servlet per prima, è come se venisse eseguita 2 volte. Se invece accedo prima ad un'altra pagina dell'applicazione, e poi mi sposto sulla servlet, viene inviata 1 sola volta Mi rimangono comunque altri dubbi: - posso utilizzare solo l'host che corrisponde alla mia connessione? Quindi come devo agire se volessi eseguire la servlet on-line? - non esiste un metodo di invio e-mail in cui non bisogna specificare l'host? Come la funzione mail() in PHP |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Per utilizzare un host ti avevo già scritto che se hai un account tin puoi usare tranquillamente quello, a meno di non dover fare mass-mailing perchè altrimenti il server ti butta fuori se mandi troppe mail in una volta...
__________________
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:39.




















