温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Salesforce怎么实现发邮件功能

发布时间:2022-03-25 16:23:00 来源:亿速云 阅读:241 作者:iii 栏目:云计算

今天小编给大家分享一下Salesforce怎么实现发邮件功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

        首先我们来捋一下思路,

        发邮件,我们需要有以下几个部分,

              1. 标题

              2. 内容

              3.收件人

              4.抄送人

        了解salesforce的知道 标题和内容 其实设计起来很简单,难的是查找一些收件的用户.言归正传,我们来接着捋思路.

          我们是要给公用小组 里面的成员发邮件的,所以我们首先

                第一步,找到那个公用小组 (Group)对象,其次 一个小组肯定有它的小组成员(groupMembers ) ,而小组的成员其实就是我们常说的用户(User),

      说白了,给公用小组发邮件其实就是给小组里面的成员发邮件.

                到这里 我们就可以知道三个对象的关系了. 

                 Salesforce怎么实现发邮件功能

            小组成员对象 就相当于一张中间表 用来连接 公用小组 和 用户 这两个对象.

                 Salesforce怎么实现发邮件功能

//发送邮件 
public static boolean sendMail() {

        Boolean result = true;
        String title = '';
        String body = '';
        List<String> toMailList = new List<String>();
        //List<String> ccMailList = new List<String>();
        List<String> statementIdList = new List<String>();
        Date today = Date.today();

        // 标题与内容
        title = '给公共小组发邮件';
        body += '各位小伙伴们,你们好!<br/>';
        body += '欢迎浏览苗小喵的博客!<br/>';
        body += '谢谢<br/>';
        body += '(^_^)~喵~!!<br/>';

        //收件人与抄送人
        //1. 邮件群组
        //String str = System.Label.OPDTPMailboxGroup;
        toMailList.addAll(str.split(';'));
        //2. 公共小组
        //用来存放用户的id
        List<String> idList = new List<String>();
        //查询公用小组
        List<Group> gList = [ SELECT (select userOrGroupId from groupMembers) FROM group WHERE name = 'MyGroupName'];
        if (gList != null && gList.size() > 0) {
            for (Group g : gList) {
                for (GroupMember gm : g.groupMembers) {
                    idList.add(gm.userOrGroupId);
                }
            }
        }

        //根据用户id查询用户信息
        List<User> usrList = [SELECT email FROM user WHERE id in :idList];
        //获取各个用户的email
        for (User u : usrList) {
            toMailList.add(u.email);
        }


        List<Messaging.SingleEmailMessage> sendMails = new List<Messaging.SingleEmailMessage>();
        Messaging.SingleEmailMessage messageNEW = new Messaging.SingleEmailMessage();
        messageNEW.setSubject(title);
        messageNEW.setHtmlBody(body);
        messageNEW.setCharset('UTF-8');
        messageNEW.setToAddresses(toMailList);
        //messageNEW.setCcAddresses(ccMailList);

        sendMails.add(messageNEW);
        if (sendMails.size() > 0) {
            Messaging.SendEmailResult[] results = messaging.sendEmail(sendMails);
            for (Integer i = 0; i < results.size(); i++) {
                if (results[i].success == false) {
                    system.debug('=====send mail error:' + results[i].errors[0].message);
                    result = false;
                }
            }
        }
        return result;
    }

以上就是“Salesforce怎么实现发邮件功能”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI