害,第一次写这个,也不知道怎么写。简单说一下自己的情况,开学大三,但是啥也不会。经常写点东西记录一下自己的学习路程吧。
——————————————————————————————————
小项目:java发送QQ邮件
开发工具:MyEclipse10
特地说明一下:项目不是自己百分之百原创,学习别人的,把他们变成自己的。
1.主要思路
//服务器主机
//传输协议 SMTP(Simple Mail Transform Protocol)
//邮箱认证授权
//发件人地址
//收件人地址
//收件人邮箱
//邮件主题
//邮件内容
其中SMTP协议需要进入QQ邮箱打开,方法自行百度。
2.创建包,类,导入java发邮件所需要的jar包。
代码如下:
首先是SendMail.java
```java
package com.softeem.demo;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/*
* 发送电子邮件
*/
public class SendMail {
public static void main(String[] args) throws MessagingException{
//服务器主机
//传输协议 SMTP(Simple Mail Transform Protocol)
//邮箱认证授权
//发件人地址
//收件人地址
//收件人邮箱
//邮件主题
//邮件内容
//创建Properties
Properties pro = new Properties();//xxx.properties
//设置主机
pro.setProperty("mail.host","smtp.qq.com");
//设置传输协议
pro.setProperty("mail.transport.protocol","smtp");
//设置允许邮箱授权认证
pro.setProperty("mail.smtp.auth","true");
//邮箱授权的认证(认证器)
//创建认证器对象
Auth auth=new Auth();
//获取一个Session的会话对象
Session session = Session.getDefaultInstance(pro, auth);
//获取连接
Transport ts = session.getTransport();
//连接服务器
ts.connect("smtp.qq.com","这里写下你的QQ邮箱","这里写下你打开SMTP得到的16位");
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//设置发件人地址
message.setFrom(new InternetAddress("这里写你的QQ邮箱"));
//收件人地址
//message.setRecipient(Message.RecipientType.TO,new InternetAddress("收件人地址"));
//群发
InternetAddress[] address = {new InternetAddress("收件人地址"),
new InternetAddress("收件人地址"),
new InternetAddress("收件人地址")};
message.setRecipients(Message.RecipientType.TO, address);
//设置邮件主题
message.setSubject("你好,能看到消息吗?");
//邮件内容
message.setContent("你好,你看到的消息是乱码吗?","text/html;charset=UTF-8");
//发送邮件
ts.sendMessage(message, message.getAllRecipients());
//关闭连接
ts.close();
System.out.println("发送完成");
}
}
然后是作者的认证器类Auth.java
package com.softeem.demo;
import javax.mail.PasswordAuthentication;
/*
* 认证器类
*/
public class Auth extends javax.mail.Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("你的地址","16位");
}
}
3.实现功能和问题解决。
下面是运行之后的效果截图
出现问题:
收件人能看到发件人所发的主题,但是尽管在message.setContent("能看到消息吗","text/html;charset=UTF-8");
这句代码里设置了"text/html;charset=UTF-8",但是收件人所收到的邮件内容还是乱码。
我不知道怎么解决了,如果有知道怎么做的可以告诉我。万分感激!!!