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

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?