Как настроить почтовый сервер для использования с JavaMail?
Я пытаюсь работать с ниже код:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*; // important
import javax.mail.event.*; // important
import java.net.*;
import java.util.*;
public class servletmail extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
PrintWriter out=response.getWriter();
response.setContentType("text/html");
try {
Properties props=new Properties();
props.put("mail.smtp.host","localhost"); // 'localhost' for testing
Session session1 = Session.getDefaultInstance(props,null);
String s1 = request.getParameter("text1"); //sender (from)
String s2 = request.getParameter("text2");
String s3 = request.getParameter("text3");
String s4 = request.getParameter("area1");
Message message =new MimeMessage(session1);
message.setFrom(new InternetAddress(s1));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(s2,false));
message.setSubject(s3);
message.setText(s4);
Transport.send(message);
out.println("mail has been sent");
} catch(Exception ex) {
System.out.println("ERROR....."+ex);
}
}
}
Я через почту.jar и активации.сосуд. Но я не могу понять, как я должен настроить его с почтового сервера. Какой почтовый сервер использовать? Смогу ли я отправить электронное письмо, используя код выше? Каковы требования к почтовому серверу? Как его настроить?
1 ответов
для начала, вам нужен SMTP-сервера. Это необходимо, чтобы иметь возможность отправлять электронные письма. Точно так же, как вам нужен HTTP-сервер, чтобы иметь возможность обслуживать сайт. Очевидно, у вас уже есть HTTP-сервер (с servletcontainer), но у вас еще нет настроенного SMTP-сервера.
вы можете использовать SMTP-сервер, связанный с вашей существующей учетной записью электронной почты, например, из вашего интернет-провайдера или общедоступных почтовых ящиков, таких как Gmail, Yahoo и т. д. Вы можете найти SMTP-соединение подробности в документации. Обычно вам просто нужно знать хоста и номер порта. The логин/пароль такие же, как и у вашей учетной записи электронной почты.
имя хоста и номер порта должны быть установлены как свойства SMTP для JavaMail:
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtp");
properties.put("mail.smtp.host", "smtp.example.com"); // smtp.gmail.com?
properties.put("mail.smtp.port", "25");
имя пользователя / пароль должны использоваться в Authenticator
следующим образом:
properties.put("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("yourusername", "yourpassword");
}
};
затем вы можете получить почтовый сеанс как следует:
Session session = Session.getDefaultInstance(properties, authenticator);
С учетной записью вашего интернет-провайдера или общедоступных почтовых ящиков, вы, однако, ограничены использованием собственного адреса в From
поле электронной почты и, как правило, также в количестве писем, которые вы можете отправлять через определенные промежутки времени. Если вы хотите обойти это, вам нужно установить свой собственный SMTP-сервер, например Апач Джеймс, который основан на Java, или Microsoft Exchange и так далее.
в конце концов, я предлагаю вам получить себе через JavaMail учебник так что вы получите лучшее понимание.