Я хочу отправить PDF-файл по электронной почте пользователям, и PDF-файл должен быть создан из данных пользовательского объекта. Как это сделать

-1
Rachana 14 Дек 2021 в 10:05
2
Привет и добро пожаловать в SFSE. Честно говоря, на этот вопрос не следовало отвечать, поскольку он не показывает попытки решить проблему самостоятельно. См. Как задать вопрос, чтобы узнать, что должно появиться в вопросе на этом сайте. Пожалуйста, убедитесь, что вы приложили усилия для исследования или решения вашего вопроса в следующий раз, когда вы размещаете вопрос здесь. Спасибо.
 – 
Phil W
14 Дек 2021 в 10:33

1 ответ

Это довольно просто, вы можете создать страницу VF, возможно, с помощью пользовательского контроллера или просто стандартного контроллера, если вам не нужны какие-либо расчеты. После этого вы можете установить renderas в параметре apex:page следующим образом:

<apex:page renderAs="pdf">

После этого вы можете получить этот PDF-файл в виде большого двоичного объекта в Apex Class и добавить вложение в электронное письмо.

    PageReference pdf =  Page.emailAttachmentEx1;
    pdf.getParameters().put('id',contactID);
    Blob b = pdf.getContentAsPDF();
    Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment();
    efa.setContentType('application/pdf');
    efa.setFileName('attachment.pdf');
    efa.setInline(false);
    efa.setBody(b);
    
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
    String[] toAddresses = new String[] {contact.Email};
    mail.setToAddresses(toAddresses);
    mail.setSubject('New contact is created');        
    mail.setFileAttachments(new Messaging.EmailFileAttachment[] {efa});
    Messaging.SendEmail(new Messaging.SingleEmailMessage[] {mail});

Вы можете найти источники и ссылки здесь:

  1. https://salesforcescool.blogspot.com/2019/01/send-pdf-as-attachment-in-visualforce.html
  2. https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_output_pdf_renderas.htm
2
Phil W 14 Дек 2021 в 10:29
Очевидно, что этот подход требует наличия или приобретения опыта разработки VF. Обратите внимание, что в зависимости от того, какие расчеты требуются, можно использовать формулу или свернуть поля со стандартным контроллером.
 – 
Phil W
14 Дек 2021 в 10:28
Спасибо @Somya. Можно ли открыть Outlook, нажав кнопку на объекте, чтобы отправить электронное письмо с уже прикрепленным PDF-файлом?
 – 
Rachana
14 Дек 2021 в 13:31