如何配置与JavaMail一起使用的邮件服务器?

前端之家收集整理的这篇文章主要介绍了如何配置与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);
        }
    }
}

我正在使用mail.jar和activation.jar.但我不明白我应该如何配置邮件服务器.我应该使用哪个邮件服务器?我可以使用以上代码发送电子邮件吗?邮件服务器有什么要求?我该怎么配置它?

解决方法

要开始,你需要一个 SMTP server.它需要能够发送电子邮件.与您需要HTTP服务器一样能够提供网站的方式相同.你显然已经有一个HTTP服务器(有一个servletcontainer),但你没有配置SMTP服务器.

您可以使用与您自己现有的电子邮件帐户相关联的SMTP服务器,例如您的ISP或Gmail,Yahoo等公共邮箱.您可以在其文档中找到SMTP连接详细信息.你通常只需要知道主机名和端口号.用户名/密码与您的电子邮件账号相同.

然后将主机名和端口号设置为JavaMail的SMTP属性

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);

使用您的ISP或公共邮箱的帐户,但是您不限于在电子邮件的“发件人”字段中使用自己的地址,通常也是允许以特定间隔发送的电子邮件数量.如果您想要解决此问题,那么您需要安装自己的SMTP服务器,例如基于Java的Apache James或Microsoft Exchange等.

毕竟,我建议你通过一个JavaMail tutorial让你得到一个更好的了解.

原文链接:https://www.f2er.com/java/122473.html

猜你在找的Java相关文章