文档章节

javaMail发邮件 简单小例子 解决QQ邮箱530 SSL问题

大喵哥
 大喵哥
发布于 2012/12/05 22:01
字数 255
阅读 786
收藏 0
package com;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Properties;


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 com.sun.mail.smtp.SMTPMessage;
import com.sun.mail.util.MailSSLSocketFactory;
class SimpleAuthenticator extends Authenticator{
 private String userName;
 private String password;
 public SimpleAuthenticator(String userName, String password) {
 super();
 this.userName = userName;
 this.password = password;
 }
 public PasswordAuthentication getPasswordAuthentication() {      
         return new PasswordAuthentication(this.userName, this.password);  
   
     }  
}
public class MailTest {
 public static void sendMail() throws UnsupportedEncodingException, GeneralSecurityException{
 String userName = "xxxx@qq.com";
 String password="xxxx";
 String subject = "发邮件进行测1111111试"; // 邮件标题
     String body = "怎么样 可以112222222了没!"; // 邮件内容
     Properties props=System.getProperties();
     MailSSLSocketFactory sf = new MailSSLSocketFactory();  
     sf.setTrustAllHosts(true);  
     props.put("mail.smtp.host", "smtp.qq.com");
     props.put("mail.smtp.auth","true");
     props.put("mail.smtp.socketFactory.port", 465);
     props.put("mail.smtp.starttls.enable","true");
     props.put("mail.smtp.ssl.socketFactory", sf); 
     props.put("mail.smtp.starttls.enable", "true");
     props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
     // props.setProperty("mail.smtp.port", "465");
    // Session session=Session.getDefaultInstance(props);
     Session session = Session.getDefaultInstance(props,new SimpleAuthenticator(userName, password)	);
     session.setDebug(true);
     SMTPMessage message=new SMTPMessage(session);
     try {
    	message.setRecipient(Message.RecipientType.TO,new InternetAddress("mmmm@163.com"));//收件人
    	message.setSubject(subject);
 message.setText(body);
 String nickName="王大锤";
 nickName=javax.mail.internet.MimeUtility.encodeText(nickName); 
 message.setFrom(new InternetAddress(nickName+" <xxxx@qq.com>"));//设置发件人 发件人必须要和Authenticator验证的帐号一致
 Transport transport = session.getTransport("smtp");
 transport.connect(userName, password);
 transport.send(message);
 transport.close();
 } catch (MessagingException e) {
 e.printStackTrace();
 }
 }
 public static void main(String[] args)  {
 try {
 MailTest.sendMail();
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
}

© 著作权归作者所有

共有 人打赏支持
大喵哥
粉丝 13
博文 33
码字总数 1912
作品 0
广州
程序员
Android 使用 JavaMail

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题不用第三方邮件程序。为了以后使用方便,自己写了段代码. Javamail-Android配置步骤: 下载Android版本JavaMail包,addit...

Taki
2012/08/14
0
2
javamail发送邮件的简单实例

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题。为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用。呵呵 以下三段代码是我的全部代码,朋友们如果想用,直...

Zero__One
2012/07/03
0
0
JavaMail(JAVA邮件服务) API详解 (1)

一、JavaMail API简介 JavaMail API是读取、撰写、发送电子 信息的可选包。我们可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序 (Mail User Agent,简称MUA)。而...

晨曦之光
2012/03/09
0
0
JAVAMAIL SSL 和 NO-SSL 发送邮件

JAVAMAIL SSL 发送邮件 import java.security.Security;import java.util.Date;import java.util.Properties; import javax.mail.Authenticator;import javax.mail.Message;import javax.ma......

JAVA枪手
2014/05/21
0
2
刚刚学习到的Android使用Javamail通过XOauth调用Gmail API发送邮件的方法

前景知识:OAuth,Javamail-android,Javamail api in android using XOauth 我的一个App项目需要在Service中自动发送邮件的功能,因为是后台自动发送邮件,不能出现邮件UI所以需要使用Javam...

since1986
2014/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

阿里云API网关使用教程

API 网关(API Gateway)提供高性能、高可用的 API 托管服务,帮助用户对外开放其部署在 ECS、容器服务等阿里云产品上的应用,提供完整的 API 发布、管理、维护生命周期管理。用户只需进行简...

mcy0425
32分钟前
4
0
解决远程登陆误按ctrl+s锁屏假死恢复

使用putty时,偶尔发生屏幕假死,不能输入等情况。 后来发现,只要数据ctrl+s,就会假死;输入ctrl+q就可以恢复过来。 很多刚从windows转移到linux上来工作的朋友,在用vi/vim编辑文件时,常常...

HJCui
36分钟前
0
0
@Transactional

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于...

asdf08442a
40分钟前
2
0
widows下强制解除8080端口占用问题

使用win+R打开命令窗口 输入以下命令查看哪个任务占用了8080端口 netstat -ano |findstr "8080" 然后通过任务id强制关闭占用该端口的进程 tskill 10044 // 自己的试情况而定,这个ID是LISTE...

_Artisan
49分钟前
2
0
productFlavors简单实用

最近项目中,不同环境需要配置的参数越来越多,为了减少修改代码次数。研究了一下productFlavors的使用方式,总结如下 1. as3.0以上版本使用productFlavors时需要指定一个flavorDimensions,...

火云
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部