处理电子邮件服务器时如何处理代理?

时间:2013-10-08 11:24:05

标签: java email proxy smtp

我已经实现了电子邮件类并从属性文件中获取所有属性。 这是我的代码:

static {
        // Load the properties file
        try {
            properties = new Properties();
            InputStream inputStream = Email.class.getClassLoader()
                    .getResourceAsStream("/mail.properties");
            properties.load(inputStream);`enter code here`
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
    }

    /**
     * 
     * @param to
     *            : mail Sent to
     * @param from
     *            : mail sent from
     * @param subject
     *            : mail's subject
     * @param body
     *            : mail's body
     * @throws Exception
     */
    public static void sendTextMail(String to, String from, String subject,
            String body) throws Exception {

        if (properties.isEmpty()) {
            throw new Exception("Cannot  send mail. Host  data not available.");
        }

        // Authenticate the session with username and password
        Session session = Session.getInstance(properties, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication((String) properties
                        .get("mail.login.username"), (String) properties
                        .get("mail.login.password"));
            }
        });

        // Create to and from addresses
        InternetAddress fromAddress = new InternetAddress(from);
        InternetAddress toAddress = new InternetAddress(to);

        // Create the message instance
        // and add the sender, recipient, subject and body.
        Message msg = new MimeMessage(session);
        msg.setFrom(fromAddress);
        msg.setSubject(subject);
        msg.setRecipient(RecipientType.TO, toAddress);
        msg.setContent(body, "text/plain");

        // Finally send the email
        Transport.send(msg);

    }

当我尝试发送邮件时,我收到此错误: 16:48:23,882 ERROR AuthorController:1199 - 无法连接到SMTP主机:smtp.gmail.com,port:25 代理正在阻止我的服务器。如何克服这个问题

1 个答案:

答案 0 :(得分:0)

大多数ISP会阻止端口25上的传出连接。但是,您通常可以使用端口587进行非加密的SMTP通信。

要更改使用的端口,您可以调整在静态块中设置的属性实例:

...
properties.load(inputStream);
properties.put("mail.smtp.port", "587");
...

确认无效后,您可能需要将设置放在/mail.properties文件中:

mail.smtp.port:587