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 = "test@dieffeweb.com";
private String dest = "thelizard.king@hotmail.it";
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);
}
}
Ma l'host smtp deve essere sempre quello del mio provider? Perchè provando con mail.tin.it non va... e se invece di eseguire questa servlet in locale la eseguissi su un server, che host dovrei specificare? Non esiste un metodo di invio e-mail senza l'uso dell'smtp? Come ad esempio la funzione mail() del PHP...