gpt4 book ai didi

javamail 错误 : must issue starttls command first

转载 作者:行者123 更新时间:2023-12-04 06:52:06 24 4
gpt4 key购买 nike

我正在尝试使用以下代码使用 javamail api 发送邮件:当我编译类文件时,我收到以下错误,提示“必须首先发出 starttls 命令”我在下面提到了错误。还有getProvider()函数错误 我认为是这样...我不知道这些错误是什么意思。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.event.*;
import javax.mail.Authenticator;
import java.net.*;
import java.util.Properties;
public class mailexample
{
public static void main (String args[]) throws Exception {

String from = args[0];
String to = args[1];
try
{
Properties props=new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host","smtp.gmail.com");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
javax.mail.Authenticator authenticator = new javax.mail.Authenticator()
{
protected javax.mail.PasswordAuthentication getPasswordAuthentication()
{
return new javax.mail.PasswordAuthentication("123@gmail.com", "pass");
}
};
Session sess=Session.getDefaultInstance(props,authenticator);
sess.setDebug (true);
Transport transport =sess.getTransport ("smtp");
Message msg=new MimeMessage(sess);
msg.setFrom(new InternetAddress(from));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setSubject("Hello JavaMail");
msg.setText("Welcome to JavaMail");
transport.connect();
transport.send(msg);

}
catch(Exception e)
{
System.out.println("err"+e);
}
}
}

错误:

C:\Users\bobby\Desktop>java 邮件示例 abc@gmail.com abc@gmail。
电脑

调试:getProvider() 返回 javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Sun Microsystems, Inc]
调试 SMTP:useEhlo 真,useAuth 真
调试 SMTP:useEhlo 真,useAuth 真

调试:SMTPTransport 尝试连接到主机“smtp.gmail.com”,端口 25

调试 SMTP RCVD:220 mx.google.com ESMTP q10sm12956046rvp.20

调试:SMTPTransport 连接到主机“smtp.gmail.com”,端口:25

已发送调试 SMTP:EHLO bobby-PC
调试 SMTP RCVD:250-mx.google.com 为您服务,[60.243.184.29]
250 码 35651584
250-8BITMIME
250-STARTTLS
250 增强状态代码

调试:getProvider() 返回 javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Sun Microsystems, Inc]
调试 SMTP:useEhlo 真,useAuth 真
调试 SMTP:useEhlo 真,useAuth 真

调试:SMTPTransport 尝试连接到主机“smtp.gmail.com”,端口 25

调试 SMTP RCVD:220 mx.google.com ESMTP l29sm12930755rvb.16

调试:SMTPTransport 连接到主机“smtp.gmail.com”,端口:25

已发送调试 SMTP:EHLO bobby-PC
调试 SMTP RCVD:250-mx.google.com 为您服务,[60.243.184.29]
250 码 35651584
250-8BITMIME
250-STARTTLS
250 增强状态代码

调试 SMTP 发送:邮件来自:
DEBUG SMTP RCVD:530 5.7.0 必须首先发出 STARTTLS 命令。 l29sm12930755rvb
.16

调试 SMTP 发送:退出
errjavax.mail.SendFailedException:发送失败;
嵌套异常是:
javax.mail.MessagingException: 530 5.7.0 必须发出 STARTTLS 命令 f
首先。 l29sm12930755rvb.16

最佳答案

可能,您需要输入 props.put("mail.smtp.starttls.enable","true");在您进行身份验证之前。

关于javamail 错误 : must issue starttls command first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com