开启qq邮箱的smtp/pop3协议的支持,并获取生成的授权码。这样做:
接着,拉到下面,pop3/smtp服务 未开启之前是“开启”,开启了之后是“关闭”,所以你需要“开启”它,按照操作发短信完成相应的步骤后(需要花1毛钱),会提示生成授权码,那就点击“生成授权码”,之后复制下来保存好。后面会用到
第二件事:需要下载jar包,可以来这里下载(采用的smtp协议的):
准备工作做好了,可以干坏事了!,首先是一个Java project(因为只是简单的为了测试发送邮件这个功能,所以没有演示在web项目中的过程,后期会展示的!)
好了,javaMailUtils即为需要介绍的,里面就介绍了核心的功能(注释方面已经写得很清楚了!),至于优化嘛,各位博友就自己去干了!
- package com.test;
-
- import java.util.Properties;
-
- import javax.mail.Authenticator;
- import javax.mail.Message.RecipientType;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
-
- import com.sun.mail.util.MailSSLSocketFactory;
-
- public class JavaMailUtils {
-
-
-
-
-
-
-
-
-
-
-
-
-
- public static int sendEmail(String mailServer,final String loginAccount,final String loginAuthCode,String sender,String[] recipients,
- String emailSubject,String emailContent,String emailContentType){
- int res=0;
-
- try {
-
- Properties p = new Properties();
-
- p.setProperty("mail.host",mailServer);
-
- p.setProperty("mail.smtp.auth", "true");
-
- p.setProperty("mail.transport.protocol", "smtp");
-
-
- MailSSLSocketFactory sf = new MailSSLSocketFactory();
- sf.setTrustAllHosts(true);
- p.put("mail.smtp.ssl.enable", "true");
- p.put("mail.smtp.ssl.socketFactory", sf);
-
-
- Session session = Session.getDefaultInstance(p, new Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
-
- PasswordAuthentication pa = new PasswordAuthentication(loginAccount,loginAuthCode);
- return pa;
- }
- });
-
-
- session.setDebug(true);
-
-
-
- MimeMessage msg = new MimeMessage(session);
-
-
- msg.setFrom(new InternetAddress(sender));
-
-
-
-
-
- InternetAddress[] receptientsEmail=new InternetAddress[recipients.length];
- for(int i=0;i<recipients.length;i++){
- receptientsEmail[i]=new InternetAddress(recipients[i]);
- }
-
-
- msg.setRecipients(RecipientType.TO,receptientsEmail);
-
-
- msg.setSubject(emailSubject);
-
- msg.setContent(emailContent,emailContentType);
-
- Transport.send(msg);
- System.out.println("邮件发送成功");
- res=1;
-
- } catch (Exception e) {
- System.out.println("邮件发送失败: "+e.getMessage());
-
- res=0;
- }
- return res;
- }
-
- public static void main(String[] args) throws Exception {
-
- int res=sendEmail("smtp.qq.com", "这里输入你的qq邮箱", "这里输入前面说到的授权码", "发送人的qq邮箱", new String[]{
- "1974544863@qq.com","linsenzhong@126.com"
- }, "节日祝福", "祝你国庆节快乐,欢迎来我的blog: <a href='http://blog.csdn.net/u013871100'>我的blog</a>,祝您生活愉快!","text/html;charset=utf-8");
-
- System.out.println("\n发送结果:"+res);
- }
- }
好了,点击运行,如果报 “
535 Error: 请使用授权码登录。详情请看: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
” 那么有几个需要检查的:
(1)是否开启了“qq邮箱支持pop3/smtp协议支持”
(2)是否生成了“授权码”
(3)检查一下你在代码中输入的你的邮箱与密码是否正确!
上面我给我的 qq邮箱,126邮箱发了封邮件:
好了,介绍到这里吧!感觉解决了问题之后很有成就感啊!!!
如果你遇到问题了,可以考虑在下面留言!