javaMail简单发送邮件



public class Mail {
	//发件人邮箱和密码
	static String myEmail="xxxxx@126.com";
	static String myEmailpassword="xxxx";//改成了授权码
	
	//发件人邮箱smtp服务器 
	static String EmailSMTPHost="smtp.126.com";
	
	//收件人邮箱 
	static String sendEmail="xxxx@qq.com";
	
	
	
	public static void main(String[] args)throws Exception{
		//1.连接邮件服务器的参数配置
		Properties props=new Properties();
		props.setProperty("mail.transport.protocol","smtp");//协议
		props.setProperty("mail.stmp.host", EmailSMTPHost);//smtp服务器地址
		props.setProperty("mail.stmp.auth","true");//需要请求认证
		
		/**
		 * ssl安全连接认证
		 */
		/*
		final String smtpPort="465";//根据不同邮箱改写,qq邮箱的smtp(ssl)端口为465或587
		props.setProperty("mail.smtp.port",smtpPort);
		props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.socketFactory.port", smtpPort);
		*/
		
		//2.创建回话对象和邮箱服务器交互
		Session session=Session.getInstance(props);
		session.setDebug(true);//设置debug模式,可查看发送log
		
		//3.创建一封邮件
		MimeMessage message=createMimeMessage(session,myEmail,sendEmail);
		
		//4.根据session获取邮件传输对象
		Transport transport=session.getTransport();
		
		//5.使用邮箱和密码连接邮件服务器
		transport.connect(EmailSMTPHost,myEmail,myEmailpassword);
		
		//6.发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
		transport.sendMessage(message,message.getAllRecipients());
		//7.关闭连接
		transport.close();
		
		
		
	}
	
	public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
		//1.创建邮件 
		MimeMessage message=new MimeMessage(session);
		//2.Form:发件人
		message.setFrom(new InternetAddress(sendMail,""));
		//3.TO:收件人
		message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail,"用户","UTF-8"));
/*
   //    Cc: 抄送(可选)
        message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress("ee@receive.com", "USER_EE", "UTF-8"));
        //    Bcc: 密送(可选)
        message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress("ff@receive.com", "USER_FF", "UTF-8"));
		*/
//4.Subject:邮件主题
		message.setSubject("洞洞拐","UTF-8");
		//5.正文
		message.setContent("祁总你好,准备跑路吧","text/html;charset=UTF-8");
		//6.设置发件时间
		message.setSentDate(new Date());
		//7.保存设置
		message.saveChanges();
		return message;
	}
	

}

碰到问题:

—需要关闭SSL认证

DEBUG SMTP: nested IOException, closing
Exception in thread “main” javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2204)
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1690)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1118)
at mail.Mail.main(Mail.java:58)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
at sun.security.ssl.InputRecord.read(InputRecord.java:503)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:124)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2184)
… 3 more

----需要开启授权码

javax.mail.AuthenticationFailedException: 535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

—STMP未开启

Exception in thread “main” javax.mail.AuthenticationFailedException: 550 Óû§ÎÞȨµÇ½

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:345)
at javax.mail.Service.connect(Service.java:226)
at mail.Mail.main(Mail.java:55)

这里写图片描述```

复杂邮件链接: http://blog.csdn.net/xietansheng/article/details/51722660

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值