javamail本地发送邮件成功,部署到服务器上发送邮件报错 10C

javamail本地发送邮件成功,部署到服务器上发送邮件报错can't send command to
SMTP host 这是为什么?求请教!

7个回答

你的服务器能连外网吗

miaoch
miaoch 回复qq_842316758: 那我就不知道了,你可以看看楼下的答案 此服务器不接受未加密的连接 可能比较妥
接近 4 年之前 回复
muniangcao
隔壁有小胖 回复qq_842316758: 登录服务器,打开浏览器,能访问百度,代表连外网了,很多服务器没有开通外网。只能单向连接服务器,但服务器不能上网的。
接近 4 年之前 回复
qq_30231963
qq_842316758 回复miaoch: 外部能访问的啊 那就是连了外网
接近 4 年之前 回复
miaoch
miaoch 回复qq_842316758: 如果你的服务器就只是为了工作内部使用的话,不能连接外网,你就不能通过连接 那些企业的邮件服务器进行发邮件呀
接近 4 年之前 回复
qq_30231963
qq_842316758 这是什么意思?
接近 4 年之前 回复

1,Check whether your JAVA_HOME setting is right on the server.
2,Try the setting below.
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit"

It would be appreciated if you share codes and exception messages for us to give you more useful advice.

这是报错的原因图片说明
Properties props = new Properties();
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
//props.setProperty("mail.host", "smtp.qq.com");
props.setProperty("mail.host", "smtp.mail.yahoo.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");

        props.setProperty("mail.sender.user", *********);
        props.setProperty("mail.sender.auth", **********);

        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);

        Session session = Session.getInstance(props);

        Message msg = new MimeMessage(session);
        msg.setSubject(mailSubject);  
        msg.setContent(mailContent, "text/html;charset=gb2312");
        msg.setFrom(new InternetAddress(props.getProperty("mail.sender.user")));
        Address[] receivers = new Address[mailReceivers.length];
        for(int i = 0; i < mailReceivers.length; i++){
            receivers[i] = new InternetAddress(mailReceivers[i]);
        }
        Transport transport = session.getTransport();
        try{
            transport.connect(props.getProperty("mail.host"), props.getProperty("mail.sender.user"), props.getProperty("mail.sender.auth"));//这里是发送人的账号 后面是授权码
            transport.sendMessage(msg, receivers); //这里是接收人的账号
        }finally{
            transport.close();
        }

邮箱账号设置里面,开启 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

qq_30231963
qq_842316758 肯定设置了啊 我本地都能发送的
接近 4 年之前 回复

服务器上ping一下smtp 服务器看看是否能连接

本地传送不需要网上邮件传送协议,服务器上就需要了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐