学习记录

害,第一次写这个,也不知道怎么写。简单说一下自己的情况,开学大三,但是啥也不会。经常写点东西记录一下自己的学习路程吧。
——————————————————————————————————
小项目: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",但是收件人所收到的邮件内容还是乱码。
我不知道怎么解决了,如果有知道怎么做的可以告诉我。万分感激!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值