telnet发送邮件Base64加密
2016-05-29 22:52
381 查看
//在命令符里试了用telnet发送邮件,但是QQ邮箱的权限真的好恶心啊!
QQ要把这里的IMAP/SMIP服务打开。也没有163邮箱,所以就写个代码,测试也不知道对不对了!需要的就把QQ邮箱换成163邮箱好了。
贴代码:
public static void mailClient(){
String username = "xxxxxxx@qq.com";
String username1 = "xxxxxxx@qq.com";
String password = "xxxxxxx";
String basename = encoder(username.substring(0, username.indexOf("@")).getBytes());
String basename1 = encoder(username1.substring(0, username.indexOf("@")).getBytes());
String basepassword = encoder(username1.getBytes());
try {
Socket aSocket = new Socket("smtp.qq.com", 25);
InputStream aStream = aSocket.getInputStream();
OutputStream bStream = aSocket.getOutputStream();
BufferedReader aReader = new BufferedReader(new InputStreamReader(aStream));
System.out.println(aReader.readLine());
PrintWriter aWriter = new PrintWriter(bStream);
aWriter.println("HELO xxx");
System.out.println(aReader.readLine());
aWriter.println("AUTH LOGIN");
System.out.println(aReader.readLine());
aWriter.println(basename);
System.out.println(aReader.readLine());
aWriter.println(basepassword);
aWriter.println("MAIL FROM:<"+username+">");
System.out.println(aReader.readLine());
aWriter.println("RCPT TO:<"+username1+">");
aWriter.println("DATA");
System.out.println(aReader.readLine());
aWriter.println("SUBJECT:abcdabcd");
aWriter.println("FROM:"+username);
aWriter.println("TO:"+username1);
aWriter.println("abcdabcd");
System.out.println(aReader.readLine());
aWriter.println("REST");
System.out.println(aReader.readLine());
aWriter.println("QUIT");
System.out.println(aReader.readLine());
aReader.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String encoder(byte[] data)
{
//加密
String aString = new BASE64Encoder().encode(data);
return aString;
}
public static String decoder(String data)
{
try {
byte[] b = new BASE64Decoder().decodeBuffer(data);
return new String(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
QQ要把这里的IMAP/SMIP服务打开。也没有163邮箱,所以就写个代码,测试也不知道对不对了!需要的就把QQ邮箱换成163邮箱好了。
贴代码:
public static void mailClient(){
String username = "xxxxxxx@qq.com";
String username1 = "xxxxxxx@qq.com";
String password = "xxxxxxx";
String basename = encoder(username.substring(0, username.indexOf("@")).getBytes());
String basename1 = encoder(username1.substring(0, username.indexOf("@")).getBytes());
String basepassword = encoder(username1.getBytes());
try {
Socket aSocket = new Socket("smtp.qq.com", 25);
InputStream aStream = aSocket.getInputStream();
OutputStream bStream = aSocket.getOutputStream();
BufferedReader aReader = new BufferedReader(new InputStreamReader(aStream));
System.out.println(aReader.readLine());
PrintWriter aWriter = new PrintWriter(bStream);
aWriter.println("HELO xxx");
System.out.println(aReader.readLine());
aWriter.println("AUTH LOGIN");
System.out.println(aReader.readLine());
aWriter.println(basename);
System.out.println(aReader.readLine());
aWriter.println(basepassword);
aWriter.println("MAIL FROM:<"+username+">");
System.out.println(aReader.readLine());
aWriter.println("RCPT TO:<"+username1+">");
aWriter.println("DATA");
System.out.println(aReader.readLine());
aWriter.println("SUBJECT:abcdabcd");
aWriter.println("FROM:"+username);
aWriter.println("TO:"+username1);
aWriter.println("abcdabcd");
System.out.println(aReader.readLine());
aWriter.println("REST");
System.out.println(aReader.readLine());
aWriter.println("QUIT");
System.out.println(aReader.readLine());
aReader.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String encoder(byte[] data)
{
//加密
String aString = new BASE64Encoder().encode(data);
return aString;
}
public static String decoder(String data)
{
try {
byte[] b = new BASE64Decoder().decodeBuffer(data);
return new String(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
相关文章推荐
- 字符串指针变量
- ACM3-1016
- hdu5713 K个联通块[2016百度之星复赛B题]
- 个人冲刺——第六天
- 多线程-NSthread
- 剖析递归求二叉树高
- DNS 配置详解
- java数据结构之单链表
- 第十三周学习进度
- 新手建站需要知道的一些知识
- Chrome 离线版 并 安装报错0x80004002解决
- 求一组数的平均数(利用可变参数列表)
- c++中的顺序表写法,主要实现(增删查改,构造函数,运算符重载)
- c++中的双向链表写法,主要实现(增删查改,链表逆置,构造函数,运算符重载,等)
- 小明哥教你使用模板函数实现顺序表
- [C++] 利用模板的模板参数实现单链表
- 初试-&gt;广义表
- 排序算法之插入排序
- 古典密码之hill密码的加密与解密程序实现
- 注释转换小项目(c注释-&gt;到c++注释)