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

网站建设技术人员要会什么/东莞优化网站关键词优化

网站建设技术人员要会什么,东莞优化网站关键词优化,品牌服装网站建设现状,公关公司服务的特点使用不同的兩個帳戶发送email时,第一个账户可以发送成功,但到第二个账户的时候就报出了501 mail from address must be same as authorization user的错误。 具体代码如下: 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.length>0){
             multipleAddress = new Address[receivers.length];
             for(int i=0;i<receivers.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 = "XXXXXX@qq.com" ;//多封邮件请用逗号隔开
String title = "主题-测试邮件";
String content = "邮件内容-测试邮件";

        String sendUser = "XXXXXX@qq.com";
        String sendPassword = "XXXXXX";
        String SendUserId = "XXXXXX";
                                 sendMail.send(receiver,title,content,sendUser,SendUserId,sendPassword);//发送邮件
System.out.println("发送成功!");
            
        sendUser = "XXXXXXXX@qq.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,比如使用1@a.com发送1#邮件,使用2@a.com发送2#邮件,这时候,你就需要同时创建两个java.mail.Session对象。但是如果你仍然使用Session.getDefaultInstance创建session对象的话,你会发现,第二个username:2@a.com创建的session永远都和第一个一样,这是为什么呢?因为,getDefaultInstance是真正单例模式,而且,里面的username和password属性是final型的,无法更改。所以,你会发现两封email都是由1@a.com发出来的。所以这个时候你要使用javax.mail.Session.getInstance()方法来创建session对象。

http://www.rdtb.cn/news/679.html

相关文章:

  • b2c电商网站开发/qq群排名优化软件购买
  • 各大网站提交入口/整站优化全网营销
  • 怎样才能把网站做的排名靠前/网络seo招聘
  • wordpress 弹幕播放器/进行优化
  • 内网建站工具/深圳外贸网站建设
  • 服装建设网站论文的目录/产品市场推广方案
  • wordpress rss/怎么样优化关键词排名
  • 珠海集团网站建设/baidu 百度一下
  • 网站策划书怎么做的美观/百度页面推广
  • 代码软件/南宁百度seo公司
  • 全能企业网站管理系统/上海网络推广服务
  • 一开始用php做网站/今日头条seo
  • 摄影网站建设的意义/友链出售
  • 烟台公司做网站/百度怎么推广广告
  • 仿网站源码/网络销售平台排名前十
  • 网站开发过程中出现的问题/百度关键词查询网站
  • vs2010怎么做网站前台/百度问答一天能赚100块吗
  • 工作号做文案素材的网站/外包项目接单平台
  • 吉安网站建设jxthw/360优化大师官方下载手机
  • 公司资质查询官方网站/武汉网站推广排名
  • 网站与网页的区别与联系/注册城乡规划师
  • 如何做流量网站/优化百度seo技术搜索引擎
  • 网站建设的基本步骤是哪些/网站优化排名金苹果系统
  • 本地做的网站怎么解析到域名/广州日新增51万人
  • 小程序链接网站自己做/太原seo排名优化公司
  • 深圳市网站建设公司设计/北京网络营销推广外包
  • 2016大型注册域名网站有哪些/宁波seo关键词培训
  • 黄页网在线观看害羞草隐藏入口视频网页在线看/长沙seo就选智优营家
  • 太原市今天新闻/网站优化建议怎么写
  • 网站可以自己做/扫描图片找原图