zdl2817403 2009-10-16 09:50
浏览 189

关于javamail发送邮件的问题

[code="java"][/code]package smack;

import java.security.Security;
import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class JavaMailTest {
public static void main(String[] args) throws AddressException, MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

      Properties props = System.getProperties(); 
      props.setProperty("mail.smtp.host", "smtp.gmail.com"); 
      props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); 
      props.setProperty("mail.smtp.socketFactory.fallback", "false"); 
      props.setProperty("mail.smtp.port", "465"); 
      props.setProperty("mail.smtp.socketFactory.port", "465"); 
      props.put("mail.smtp.auth", "true"); 
      final String username = "xxx"; 
      final String password = "xxx"; 
      Session session = Session.getDefaultInstance(props, new Authenticator(){ 
          protected PasswordAuthentication getPasswordAuthentication() { 
              return new PasswordAuthentication(username, password); 
          }}); 


      Message msg = new MimeMessage(session); 


      msg.setFrom(new InternetAddress(username+"@gmail.com" )); 
      msg.setRecipients(Message.RecipientType.TO, 
        InternetAddress.parse("suken2817403@gmail.com",false)); 
      msg.setSubject("Hello"); 
      msg.setText("How are you"); 
      msg.setSentDate(new Date()); 
      Transport.send(msg); 

      System.out.println("Message sent."); 
    } 

}
异常如下:
Exception in thread "main" javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.io.IOException: Couldn't connect using "javax.net.ssl.SSLSocketFactory" socket factory to host, port: smtp.gmail.com, 465; Exception: java.lang.reflect.InvocationTargetException
at javax.mail.Transport.send0(Transport.java:219)
at javax.mail.Transport.send(Transport.java:81)
at smack.JavaMailTest.main(JavaMailTest.java:46)
一直是这个异常,用spring整合也是这个异常

  • 写回答

4条回答 默认 最新

  • wanghaolovezlq 2009-10-16 10:01
    关注

    javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
    nested exception is:
    java.io.IOException: Couldn't connect using "javax.net.ssl.SSLSocketFactory" socket factory to host, port: smtp.gmail.com, 465; Exception: java.lang.reflect.InvocationTargetException

    异常就已经说明了问题所在嘛

    不能用"javax.net.ssl.SSLSocketFactory"连接smtp.gmail.com, 465

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮