2

使用 SalesForce 的发送电子邮件功能,它允许文件附件。我正在寻找一种将销售人员中的附件存储到发送电子邮件的对象的方法。

我知道销售人员的这种限制

“附件不会存储在从 Salesforce 发送的电子邮件中。要与电子邮件一起保存,附件必须稍后与电子邮件关联或使用电子邮件转个案、电子邮件转 Salesforce、按需电子邮件发送到 Salesforce -to-Case,或 Salesforce for Outlook。”

有什么解决办法吗?

4

3 回答 3

0

一种选择是使用 Apex 代码在 Object 的 Attachment 对象中上传相同的代码,然后发送电子邮件。

    //Code for attaching a file from Local Machine
//VF Page

    <apex:page controller="AttachmentUploadController">
<apex:sectionHeader title="Visualforce Example" subtitle="Attachment Upload Example"/>
    <apex:form enctype="multipart/form-data">
        <apex:pageMessages />
        <apex:pageBlock title="Upload a Attachment">

      <apex:pageBlockSection showHeader="false" columns="2" id="block1">

        <apex:pageBlockSectionItem >
          <apex:outputLabel value="File" for="file"/>
          <apex:inputFile value="{!attachment.body}" filename="{!attachment.name}" id="file"/>
        </apex:pageBlockSectionItem>

        <apex:pageBlockSectionItem >
            <apex:commandButton action="{!upload}" value="Upload and send an Email"/>
        </apex:pageBlockSectionItem>
      </apex:pageBlockSection>


    </apex:pageBlock>
  </apex:form>
</apex:page>



//Controller

    public with sharing class AttachmentUploadController 
{
    public Attachment attachment 
    {
        get
        {
            if (attachment == null)
            attachment = new Attachment();
            return attachment;
        }
        set;
    }

    public PageReference upload() 
    {
        String parentId = System.currentPagereference().getParameters().get('pid');

        attachment.OwnerId = UserInfo.getUserId();  
        attachment.ParentId = parentId;
        attachment.IsPrivate = true;
        try
        {
            insert attachment;

            //Start: Send Email with Attachment
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
            String[] toAddresses = new String[]{<<email IDs>>};

            mail.setToAddresses(toAddresses);             

            //Set email file attachments
            List<Messaging.Emailfileattachment> fileAttachments = new List<Messaging.Emailfileattachment>();

            // Add to attachment file list
            Messaging.Emailfileattachment efa = new Messaging.Emailfileattachment();
            efa.setFileName(attachment.Name);
            efa.setBody(attachment.Body);
            fileAttachments.add(efa);

            //create attachment for object
            Attachment att = new Attachment(name = attachment.name, body = attachment.body, parentid = Trigger.new[0].id);
            insertAttList.add(att);
            mail.setFileAttachments(fileAttachments);

            //Send email
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
            //END : Send Email with Attachment

            PageReference page = new PageReference('/' + parentId);
            return page;
        } 
        catch (DMLException e) 
        {
            ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,system.Label.Error_uploading_attachment));
            return null;
        }
        finally
        {
            attachment = new Attachment(); 
        }
    }
}

注意事项:

  1. 我只在顶点代码中硬编码了 ToAddress,但您可以在 VF 页面中添加相同的内容。事实上,您可以提供与发送电子邮件相同的 UI 体验。
  2. 我没有尝试或执行上面给出的代码;请将此作为参考,以了解有关算法/流程的信息。
于 2013-09-17T12:26:50.350 回答
0

为了在 Salesforce 中存储任何类型的电子邮件附件,Salesforce org 需要与一些 Outlook 邮箱连接。如前所述,电子邮件转个案/按需电子邮件转个案服务等销售人员功能有助于存储通过电子邮件发送的所有附件。在这种情况下,如果附件随邮件一起发送,则该附件应在“案例附件”选项卡下可用。

于 2021-11-20T13:36:42.720 回答
0

您是否查看过 Salesforce For Outlook?它是 Outlook 的一个插件,它与 Salesforce 同步,用于任务、会议、事件、ECT。它还允许您通过单击按钮将电子邮件和附件保存到 Salesforce 中的帐户。我是 700 多个用户的唯一管理员,整个领域都使用它并且喜欢它。

于 2017-03-08T14:53:22.790 回答