我是靠谱客的博主 暴躁鞋垫,最近开发中收集的这篇文章主要介绍java 发送邮件 菜鸟_【垃圾菜鸟笔记】java 一个类发送邮件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SendMail.java

package xxx.common;

import java.io.UnsupportedEncodingException;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.activation.FileDataSource;

import javax.mail.Address;

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.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.MimeUtility;

public class SendMail {

public static void main(String[] args) {

//配置参数

Properties props=new Properties();

props.setProperty("mail.smtp.auth", "true");//是否有身份验证

props.setProperty("mail.transport.protocol", "smtp");//使用的传输协议

props.setProperty("mail.smtp.host", "smtp.163.com");//设置SMTP服务器

props.setProperty("mail.smtp.from", "xxx@163.com");//发送方邮件地址

//默认port 是25 这个可以自己设置mail.smtp.port

//连接邮件服务器会话对象,传入参数和用户名密码验证对象,此处用匿名类实现

Session session=Session.getInstance(props,new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("xxxxx@163.com","xxxxxx");

}

});

//显示调试信息

session.setDebug(true);

//复杂信息对象

MimeMessage msg=new MimeMessage(session);

try {

//发送方的邮箱地址

msg.setFrom(new InternetAddress("xxxxx@163.com"));

//邮件主题

msg.setSubject("这是一封测试邮件");

//接收方的邮箱地址数组,Message.RecipientType.TO是发送方式(TO正常,CC抄送,BCC密件抄送)

msg.setRecipients(Message.RecipientType.TO, new Address[]{new InternetAddress("xxxx@qq.com")});//在此处传入接收方邮箱地址

//为混合模式的邮件内容对象

MimeMultipart msgMultipart = new MimeMultipart("mixed");

//内容1:普通HTML文本

MimeBodyPart body1 = new MimeBodyPart();

body1.setContent("红色的测试文本","text/html;charset=gbk");

//将内容1加入到邮件内容对象中

msgMultipart.addBodyPart(body1);

//内容2:一个文件附件

MimeBodyPart body2 = new MimeBodyPart();

DataSource ds = new FileDataSource("f:\20.png");//源文件路径

DataHandler dh = new DataHandler(ds);//包装文件

body2.setDataHandler(dh);//设置内容2的文件附件

body2.setFileName(MimeUtility.encodeText("文件20.png"));//设置附件名称,中文要转码

//将内容2加入到邮件内容对象中

msgMultipart.addBodyPart(body2);

//设置邮件内容

msg.setContent(msgMultipart);

//发送邮件

Transport.send(msg);

} catch (MessagingException e) {

e.printStackTrace();

}catch(Exception ex){

ex.printStackTrace();

}

}

}

还是有一点问题没有解决的了

在使用qq邮箱为发送方的时候会报这个错误

javax.mail.AuthenticationFailedException: 530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28

at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)

at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)

at javax.mail.Service.connect(Service.java:295)

at javax.mail.Service.connect(Service.java:176)

at com.javaMail.entity.MailUtil.sendEmail(MailUtil.java:38)

at com.javaMail.entity.MailUtil.main(MailUtil.java:60)

设置了 port 465之后 提示信息没有报错 或者是我等待的时间太短了,看提示信息有一条这样的

.........(略) isSSL false   卡到这里不继续了

这个是

如何设置POP3/SMTP的SSL加密方式?(腾讯)

http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=369

做这个的时候还有个小问题,用163都调试成功了 控制台正常输出信息,但是打开qq邮箱收件箱一看  噫? 为啥没有邮件呢 ,然后俺就多执行了几遍,还是没有邮件

就在执行了n遍以后突然想到了 邮箱是会自动处理垃圾邮件的  打开垃圾箱 测试邮件老老实实的躺在那里

注:以上xxx标示的 皆为个人信息不便透露 嘿嘿

最后

以上就是暴躁鞋垫为你收集整理的java 发送邮件 菜鸟_【垃圾菜鸟笔记】java 一个类发送邮件的全部内容,希望文章能够帮你解决java 发送邮件 菜鸟_【垃圾菜鸟笔记】java 一个类发送邮件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部