当前位置: 首页 > news >正文

龙华做网站天无涯网络邯郸城融网络技术有限公司

龙华做网站天无涯网络,邯郸城融网络技术有限公司,优化网站内容的方法,承接网站开发文案使用不同的兩個帳戶发送email时#xff0c;第一个账户可以发送成功#xff0c;但到第二个账户的时候就报出了501 mail from address must be same as authorization user的错误。 具体代码如下#xff1a; import java.util.Date; import java.util.List; import java.util.…使用不同的兩個帳戶发送email时第一个账户可以发送成功但到第二个账户的时候就报出了501 mail from address must be same as authorization user的错误。 具体代码如下 import java.util.Date; import java.util.List; import java.util.Properties; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class MailSend {     private String host  smtp.qq.com;     /**      * 发送邮件      * param receiver 接收人      * param title    标题      * param content  内容      * throws Exception      */     public void send(String receiver,String title,String content,String sendUser,String sendUserId,String sendPassword) throws Exception{         try         {                      Properties props  new Properties(); // 获取系统环境             Authenticator auth  new MailAutherticator(sendUserId,sendPassword); // 进行邮件服务器用户认证             props.put(mail.smtp.host, host);             props.put(mail.smtp.auth, true);             Session session  Session.getDefaultInstance(props, auth);             MimeMessage message  new MimeMessage(session);// 设置session,和邮件服务器进行通讯。             message.setSubject(title); // 设置邮件主题             message.setText(content); // 设置邮件正文             message.setSentDate(new Date()); // 设置邮件发送日期             Address address  new InternetAddress(sendUser);             message.setFrom(address); // 设置邮件发送者的地址             message.reply(false);             //处理多用户发送             Address[] multipleAddress  null;             String[] receivers  receiver.split(,);             if(receivers.length0){              multipleAddress  new Address[receivers.length];              for(int i0;ireceivers.length;i){              String tmpReceiver  receivers[i].trim();              Address toAddress  new InternetAddress(tmpReceiver);              multipleAddress[i]  address;              }             }             message.addRecipients(Message.RecipientType.TO, multipleAddress); //收件人             Transport.send(message); // 发送邮件                      } catch (Exception ex){             ex.printStackTrace();             throw new Exception(ex.getMessage());         }     }      /**  * 测试邮件  * param args  */ public static void main(String[] args) { MailSend sendMail  new MailSend(); try { String receiver  XXXXXXqq.com ;//多封邮件请用逗号隔开 String title  主题-测试邮件; String content  邮件内容-测试邮件;         String sendUser  XXXXXXqq.com;         String sendPassword  XXXXXX;         String SendUserId  XXXXXX;                                  sendMail.send(receiver,title,content,sendUser,SendUserId,sendPassword);//发送邮件 System.out.println(发送成功!);                      sendUser  XXXXXXXXqq.com;         sendPassword  XXXXXXX;         SendUserId  XXXXXXXX; /*运行到此处时就会报错但前一个send不执行的话此处就正常运行*/         sendMail.send(receiver,title,content,sendUser,SendUserId,sendPassword);//发送邮件         System.out.println(发送成功!); } catch (Exception e) { e.printStackTrace(); } } Session session  Session.getDefaultInstance(props, auth);以上改成Session session  Session.getInstance(props, auth);就可以了 何谓getDefaultInstance 从处理流程中可以看出首先是从缓存中查找是否有properties存在 如果存在则加载默认的properties 如果不存在才加载用户自己定义的properties 所以当一个应用为每个用户独立创建properties的时候还是应该调用getInstance 除非你希望有一个默认的properties让用户使用 问 题找到了,因为它会首先去内存和系统文件中去找properties,所以不管我在页面改几次数据,其实在后台中生成session时都和系统启动时的一 样,所以在MailUtil.sendTextMessage(mailSession,RptTaskMailConfig.Sender, receiver,null,mail_subject,mail_content,GB2312,null);时session里的sender和传入的sender不一致,因此出错,修改Session.getDefaultInstance(props, authentic);为Session.getInstance(props, authentic);后,可以正确发送修改帐号,密码等资料后的邮件.OK 最后再补充一下,session.getdefaultinstance和getinstance的区别 : 如果想要同时使用两个帐号发送javamail比如使用1a.com发送1#邮件使用2a.com发送2#邮件这时候你就需要同时创建两个java.mail.Session对象。但是如果你仍然使用Session.getDefaultInstance创建session对象的话你会发现第二个username2a.com创建的session永远都和第一个一样这是为什么呢因为getDefaultInstance是真正单例模式而且里面的username和password属性是final型的无法更改。所以你会发现两封email都是由1a.com发出来的。所以这个时候你要使用javax.mail.Session.getInstance()方法来创建session对象。
http://www.hkea.cn/news/14366653/

相关文章:

  • 加盟网站有哪些软件工程公司有哪些
  • 公司网站建设前期情况说明网站建设基础大纲文案
  • 网站网络推广运营福州网站建设哪家好
  • 网站新站整站排名外包建站的公司怎么做seo
  • 网站建设搜索优化app推广新闻营销河源网站制作1993seo
  • 做网站要用服务器吗网站建设中 windows
  • 企业官方网站的作用传统网站和手机网站的区别
  • 网站首页翻转效果什么模块电子商务网站界面设计
  • 运河经济开发区建设局网站珠海特价做网站
  • wordpress手机端网站模板怎么接广告赚钱
  • 南京网站制作域名做营销型网站需要注意哪些点
  • 营销型网站制作费用网站办公室文化建设
  • 网页游戏有哪些好玩的象山关键词seo排名
  • 做高端网站的网络公司wap网站还有能打开的吗
  • 江宁网站建设制作php网站安装好后后台无法登陆提示是500是怎么回事?
  • 自己做网站教学视频教程直播网站开发计划书
  • 互联网金融网站建设平面设计一个月多少工资
  • 公司网站免费注册专业网页制作室
  • 微信官网与手机网站区别软件商城电脑版下载
  • 住房城乡建设门户网站wordpress网站资源
  • php二次网站开发步骤wordpress建站双语
  • 自学网站建设视频做临时网站
  • 买号链接吴中seo外链推广工具
  • 江门网站建设优化韩国世界杯小组赛出线
  • win7做网站服务器宁波网站建设详细策划
  • 网站建设带数据库模板如何寻找一批做网站的公司
  • 10个值得推荐的免费设计网站新产品上市的营销策划方案
  • 织梦cms做网站流程网站前段打不开 后台也进不去
  • 婺源做网站长沙网站建设价格
  • 淘宝网站维护如何做二维码链接网站