5

I have a requirement and I appreciate your help on this.

We have a custom object, where users create records and upload spreadsheets in "Notes & Attachment" related list.

Our requirement is, we wanted to create a VF email template that adds the attachment (xls) of the record. This VF email template will be used in our standard Approval Process.

How do i go about?

Regards, Satish

1

Messaging:attachment documentation should help you to form the attachment by yourself rather than asking user to fill in excel if data is derived from salesforce objects and fields

http://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_messaging_attachment.htm

https://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_messaging_emailTemplate.htm

The code mentioned is as below

<messaging:emailTemplate recipientType="Contact"

relatedToType="Account"

subject="Case report for Account: {!relatedTo.name}"

replyTo="support@acme.com">

<messaging:htmlEmailBody>
<html>
    <body>
    <p>Dear {!recipient.name},</p>
    <p>Attached is a list of cases related to {!relatedTo.name}.</p>
    <center>
    <apex:outputLink value="http://www.salesforce.com">
        For more detailed information login to Salesforce.com
    </apex:outputLink>
    </center>
    </body>
</html>
</messaging:htmlEmailBody>

<messaging:attachment renderAs="PDF" filename="yourCases.pdf">
<html>
    <body>
    <p>You can display your {!relatedTo.name} cases as a PDF</p>
    <table border="0" >
    <tr>
        <th>Case Number</th><th>Origin</th>
        <th>Creator Email</th><th>Status</th>
    </tr>
    <apex:repeat var="cx" value="{!relatedTo.Cases}">
    <tr>
        <td><a href = 
             "https://na1.salesforce.com/{!cx.id}">{!cx.CaseNumber}
            </a></td>
        <td>{!cx.Origin}</td>
        <td>{!cx.Contact.email}</td>
        <td>{!cx.Status}</td>
    </tr>
    </apex:repeat> 
    </table>
    </body>
</html>
</messaging:attachment>

Lets say you want exact attachment that user has modified ,then consider sending as link

here is some example for same

<messaging:emailTemplate subject="hai" recipientType="Contact" relatedToType="Case">
 <messaging:htmlEmailBody >
<p>Attachment to download link</p>

<apex:repeat value="{!relatedTo.Attachments}" var="a">
<p><a href="{!URLFOR($Action.Attachment.Download, a)}">{!a.Name}</a> ({!a.BodyLength} B)</p>
</apex:repeat>

  • Thanks Mohith for sharing the sample code. Actually, the messaging:attachment cannot be used in a repeat statement. Please check this link - salesforce.stackexchange.com/questions/12899/… – user7101 Aug 25 '14 at 2:35
  • If you use in apex component then you have problems.Here in this case you should be fine – Mohith Shrivastava Aug 25 '14 at 5:43
  • Hi Mohith, Still it is a problem. The above codes, send an email with attachment (PDF) and inside the attachment it does have the information of the 'Notes & Attachment'. But, what I am looking for is, the email is sent with 'Notes & Attachment' attachments which will be in xls format. -Satish – user7101 Aug 25 '14 at 8:35
  • for example, in an Opportunity record, under Notes & Attachment, we upload "Special-Deals.xls". Now, we want to send an email to our users on the Opportunity record and in the very same email the uploaded "Special-Deals.xls" is attached as an attachment. I appreciate your help & advise. -Satish – user7101 Aug 25 '14 at 8:43
  • You will need to go with second approach of sending just the link while you cant send actual attacment – Mohith Shrivastava Aug 25 '14 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.