开发者社区> 问答> 正文

报错



import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.Mime/Message;
import java.util.Properties;

/**
* 发邮件工具类
*/
public final class MailUtils {
     private static final String PASSWORD = "授权码"; // 如果是qq邮箱可以使户端授权码,或者登录密码
     private static final String USER = "邮件@aliyun.com"; // 发件人称号,同邮箱地址

    /**
     *
     * @param to 收件人邮箱
     * @param text 邮件正文
     * @param title 标题
     */
    /* 发送验证信息的邮件 */
     public static boolean sendMail(String to, String text, String title){
         try {
             final Properties props = new Properties();
            props.put( "mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
            props.put( "mail.smtp.timeout", "25000");
            props.put( "mail.smtp.starttls.enable", "true");
            props.put( "mail.smtp.host", "smtp.aliyun.com");
             final String smtpPort = "465";
            props.put( "mail.smtp.port", smtpPort);
            props.put( "mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put( "mail.smtp.socketFactory.fallback", "false");
            props.put( "mail.smtp.socketFactory.port", smtpPort);


             // 发件人的账号
            props.put( "mail.user", USER);
             //发件人的密码
            props.put( "mail.password", PASSWORD);

             // 构建授权信息,用于进行SMTP进行身份验证
            Authenticator authenticator = new Authenticator() {
                 @Override
                 protected PasswordAuthentication getPasswordAuthentication() {
                     // 用户名、密码
                    String userName = props.getProperty( "mail.user");
                    String password = props.getProperty( "mail.password");
                     return new PasswordAuthentication(userName, password);
                }
            };
             // 使用环境属性和授权信息,创建邮件会话
            Session mailSession = Session. getInstance(props, authenticator);
             // 创建邮件消息
            Mime/Message message = new Mime/Message(mailSession);
             // 设置发件人
            String username = props.getProperty( "mail.user");
            InternetAddress form = new InternetAddress(username);
            message.setFrom(form);

             // 设置收件人
            InternetAddress toAddress = new InternetAddress(to);
            message.setRecipient(Message.RecipientType. TO, toAddress);

             // 设置邮件标题
            message.setSubject(title);

             // 设置邮件的内容体
            message.setContent(text, "text/html;charset=UTF-8");
             // 发送邮件
            Transport. send(message);
             return true;
        } catch (Exception e){
            e.printStackTrace();
        }
         return false;
    }

     public static void main(String[] args) throws Exception { // 做测试用
        MailUtils. sendMail( "发送邮箱@qq.com", "内容 ", "标题");
        System. out.println( "发送成功");
    }



报错:javax.mail.MessagingException: Could not connect to SMTP host: smtp.aliyun.com, port: 465, response: -1求助哪错了

展开
收起
雾水薄冰 2018-09-02 14:53:40 1851 0
1 条回答
写回答
取消 提交回答
  • Re报错
    2018-09-03 11:05:31
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载