JavaMail邮件发送-发送一个文本邮件和一些问题说明

需要下载的JAR包:

JavaMail:

JAF:

加入的包有:mail.jar activation.jar

你要准备一个邮箱账户,就用网易的吧,然后打开SMTP功能

关于网易的一些端口信息参考下面:

每个公司都是不一样的,使用SSL的和不实用的也不一样

使用的开发和编译环境是JDK1.4,如果你使用的是JDK1.5环境,那么你的环境需要修改一些东西,找到 javaee.jar 删除里面的 mial 包,否则会有冲突

否则会报错:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
	at javax.mail.Session.loadProvidersFromStream(Session.java:928)
	at javax.mail.Session.access$000(Session.java:174)
	at javax.mail.Session$1.load(Session.java:870)
	at javax.mail.Session.loadResource(Session.java:1084)
	at javax.mail.Session.loadProviders(Session.java:889)
	at javax.mail.Session.<init>(Session.java:210)
	at javax.mail.Session.getInstance(Session.java:249)
	at com.mail.TextMail.main(TextMail.java:22)

下面我直接贴代码了

需要注意的有

InternetAddress from = new InternetAddress("test20120711120200@163.com");

transport.connect("smtp.163.com", 25, "test20120711120200", "test123456");

这两个邮箱的地址必须相同,否则会出现

Exception in thread "main" javax.mail.MessagingException: 553 Mail from must equal authorized user

	at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
	at com.mail.TextMail.main(TextMail.java:38)

你上网查都是说用户验证不对,其实一般大家都是按照别人代码拷贝的,然后修改了用户和密码,怎么会不对!

我这个账户和密码都是可以用的,对不起网易了!

由于上面我设置了打印调试,所以你在控制台会看到如下内容:

这些都是程序与邮件服务商的一些交互信息!

或支持我的个人博客,地址:

需要下载的JAR包: JavaMail: JAF: 加入的包有:mail.jar activation.jar 你要准备一个邮箱账户,就用网易的吧,然后打开SMTP功能 关于网易的一些端口信息参考下面: 每个公司都是不一样的,使用SSL的和不实用的也不一样 使用的开发和编译环境是JDK1.4,如果你使用的是JDK1.5环境,那么你的环境需要修改一些东西,找到 javaee.jar 删除里面的 mial 包,否则会有冲突 否则会报错: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream at javax.mail.Session.loadProvidersFromStream(Session.java:928) at javax.mail.Session.access$000(Session.java:174) at javax.mail.Session$1.load(Session.java:870) at javax.mail.Session.loadResource(Session.java:1084) at javax.mail.Session.loadProviders(Session.java:889) at javax.mail.Session. (Session.java:210) at javax.mail.Session.getInstance(Session.java:249) at com.mail.TextMail.main(TextMail.java:22) 下面我直接贴代码了 需要注意的有 InternetAddress from = new InternetAddress("test20120711120200@163.com"); 和 transport.connect("smtp.163.com", 25, "test20120711120200", "test123456"); 这两个邮箱的地址必须相同,否则会出现 Exception in thread "main" javax.mail.MessagingException: 553 Mail from must equal authorized user at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388) at com.mail.TextMail.main(TextMail.java:38) 你上网查都是说用户验证不对,其实一般大家都是按照别人代码拷贝的,然后修改了用户和密码,怎么会不对! 我这个账户和密码都是可以用的,对不起网易了! 由于上面我设置了打印调试,所以你在控制台会看到如下内容: 这些都是程序与邮件服务商的一些交互信息! 或支持我的个人博客,地址:
经验分享 程序员 微信小程序 职场和发展