xinyb
2024-09-09 6a63e2f86f981066357bd60d34496c627a51e3a8
src/com/yc/crm/mail/service/MailImpl.java
@@ -72,7 +72,7 @@
                        GridUtils.prossSqlParm(m.getSubject()) + "," + GridUtils.prossSqlParm(m.getUserCode()) + "," + GridUtils.prossSqlParm(m.getUserName()) + "," +
                        GridUtils.prossSqlParm(m.getContent()) + "," + GridUtils.prossSqlParm(m.getPlainText()) + "," + GridUtils.prossSqlParm(m.getFileUNID()) + "," + GridUtils.prossSqlParm(m.getMessageId()) + "," +
                        m.getReadFlag() + "," + m.getDeleteFlag() + ",getdate(),getdate()," + GridUtils.prossSqlParm(m.getReceiveTime()) + "," + m.getAttachFlag() + "," +
                        GridUtils.prossSqlParm(m.getAttachmentList())+") \n";
                        GridUtils.prossSqlParm(m.getAttachmentList()) + ") \n";
                sql += "select @docCode as docCode";
                String docCode = jdbcTemplate.queryForObject(sql, String.class);
                if (StringUtils.isNotBlank(docCode)) {
@@ -106,7 +106,7 @@
                        GridUtils.prossSqlParm(m.getSubject()) + "," + GridUtils.prossSqlParm(m.getUserCode()) + "," + GridUtils.prossSqlParm(m.getUserName()) + "," +
                        GridUtils.prossSqlParm(m.getContent()) + "," + GridUtils.prossSqlParm(m.getPlainText()) + "," + GridUtils.prossSqlParm(m.getFileUNID()) + "," + GridUtils.prossSqlParm(m.getMessageId()) + "," +
                        m.getReadFlag() + "," + m.getDeleteFlag() + ",getdate(),getdate()," + GridUtils.prossSqlParm(m.getReceiveTime()) + "," +
                        m.getAttachFlag() + ","+GridUtils.prossSqlParm(m.getAttachmentList())+") \n";
                        m.getAttachFlag() + "," + GridUtils.prossSqlParm(m.getAttachmentList()) + ") \n";
//                sql +="exec postt482101V3 '' ,'',''";
            }
            jdbcTemplate.update(sql);
@@ -225,17 +225,23 @@
    @Override
    public List<t482101HEntity> getMailReceiving(T482102Entity emailEntity, HttpServletRequest request) throws MessagingException {
        String imapServer = emailEntity.getReceiveHost();//"imap.qq.com";
        String user = emailEntity.getEmail();//"xxx@qq.com";
        String pwd = emailEntity.getPassword();//"xxxx";
        String user = emailEntity.getReceiveEmail();//"xxx@qq.com";
        String pwd = emailEntity.getReceivePassword();//"xxxx";
        Properties properties = new Properties();
        properties.put("mail.store.protocol", emailEntity.getReceiveProtocol()); // IMAP over SSL
        properties.put("mail.imaps.host", emailEntity.getReceiveHost());
        properties.put("mail.imaps.port", emailEntity.getReceivePort());
        properties.put("mail.imaps.starttls.enable", "true");//// IMAP 协议设置 STARTTLS
        HashMap IAM = new HashMap();
        //带上IMAP ID信息,由key和value组成,例如name,version,vendor,support-email等。
        IAM.put("name", emailEntity.getAliasEmail());
        IAM.put("name", emailEntity.getReceiveEmail());
        IAM.put("version", emailEntity.getDocVersion() + "");
        IAM.put("vendor", emailEntity.getCompanyName());
        IAM.put("support-email", emailEntity.getEmail());
        //创建会话
        Session session = Session.getInstance(new Properties(), new Authenticator() {
        Session session = Session.getInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(user, pwd);
@@ -288,7 +294,7 @@
        try {
            //根据当前用户查询绑定的邮箱信息
            T482102Entity emailEntity = emailAccountIfc.getAccountInfo(t482101H.getUserCode(), t482101H.getSender());//返回邮箱的账号信息
            if (emailEntity == null || StringUtils.isBlank(emailEntity.getEmail())) {
            if (emailEntity == null || StringUtils.isBlank(emailEntity.getSmtpEmail())) {
                if (StringUtils.isBlank(t482101H.getDocCode())) {
                    t482101H.setMailType(0);//草稿箱状态
                    t482101H = saveReceivingMail(t482101H);//保存到草稿箱内
@@ -300,11 +306,13 @@
            Properties properties = new Properties();
            properties.setProperty("mail.smtp.host", emailEntity.getSmtpHost());
            properties.setProperty("mail.smtp.port", emailEntity.getSmtpPort() + "");
            properties.setProperty("mail.smtp.auth", "true");
            properties.setProperty("mail.smtp.starttls.enable", "true");
            properties.setProperty("mail.smtp.auth", "true");// // 设置SMTP是否需要认证
            properties.put("mail.smtp.ssl.enable", emailEntity.isSmtpSSL()+"");// // 设置启用SSL加密
            properties.setProperty("mail.smtp.starttls.enable", "true");//// SMTP 协议设置 STARTTLS  开启tls
            //
            String sendEmail = emailEntity.getEmail();//发件人
            String sendPassword = emailEntity.getPassword();//密码
            String sendEmail = emailEntity.getSmtpEmail();//发件人
            String sendPassword = emailEntity.getSmtpPassword();//密码
            String recipientEmail = StringUtils.join(t482101H.getReceiver(), ",");//收件人
            Session session = Session.getInstance(properties, new Authenticator() {
                @Override
@@ -378,7 +386,7 @@
            sql += "update t482101H set sender=" + GridUtils.prossSqlParm(mail.getSender()) + ",receiver=" + GridUtils.prossSqlParm(StringUtils.join(mail.getReceiver(), ",")) + "," +
                    "cc=" + GridUtils.prossSqlParm(StringUtils.join(mail.getCc(), ",")) + ",bcc=" + GridUtils.prossSqlParm(StringUtils.join(mail.getBcc(), ",")) + ",subject=" + GridUtils.prossSqlParm(mail.getSubject()) + "," +
                    "content=" + GridUtils.prossSqlParm(mail.getContent()) + ",file_unid=" + GridUtils.prossSqlParm(mail.getFileUNID()) + ",mailType=" + mail.getMailType() + "," +
                    "updateTime=getdate() \n";
                    "update_time=getdate() \n";
            sql += " where docCode=" + GridUtils.prossSqlParm(mail.getDocCode());
            sql += " select @@ROWCOUNT";
            return jdbcTemplate.queryForObject(sql, Integer.class);
@@ -702,11 +710,12 @@
                            int count = 0;
                            for (T482102Entity a : account) {
                                MailModuleEntity.MailCode nextCode = new MailModuleEntity.MailCode();
                                nextCode.setMailName(a.getEmail());
                                String eMail = (mailType == 1 ? a.getReceiveEmail() : a.getSmtpEmail());//获取邮箱账号
                                nextCode.setMailName(eMail);
                                nextCode.setMailType(m.getMailType());
                                if (userMail.size() > 0) {
                                    count = (mailType == 1 ? (int) userMail.stream().filter(s -> s.getMailType().equals(mailType) && s.getReceiver().contains(a.getEmail())).count() :
                                            (int) userMail.stream().filter(s -> s.getMailType().equals(mailType) && s.getSender().contains(a.getEmail())).count());
                                    count = (mailType == 1 ? (int) userMail.stream().filter(s -> s.getMailType().equals(mailType) && s.getReceiver().contains(eMail)).count() :
                                            (int) userMail.stream().filter(s -> s.getMailType().equals(mailType) && s.getSender().contains(eMail)).count());
                                    nextCode.setTotal(count);
                                }
                                codeList.add(nextCode);