通过Sendgrid将表单数据作为PDF附件发送

问题描述

我想通过Sendgrid将表单的数据作为PDF附件提交。

流程如下:

  1. 客户在网页上填写表格。

  2. 按下提交按钮。

  3. 通过FDPF生成PDF。

  4. 通过SendGrid向我发送了一封电子邮件,其中包含一些文本和生成的PDF作为附件。

下面是一些代码

<?PHP

if(isset($_POST['sendemail']))
{
    
    require('fpdf/fpdf.PHP');
    $title = 'Inscrição';
    $name = $_POST['name'];
    $email_id = $_POST['email'];
    $age = $_POST['age'];
    $aulas = $_POST['aulas'];
    $experience = $_POST['experiencia-dança'];
    $conhecimento = $_POST['conhecimento'];
    $comentario = $_POST['comentario'];

(...)

    $pdf = new FPDF();
    $pdf -> AddPage();
    $pdf->SetTitle($title);

(...)

   $pdf->Output();

(...)

   $sendgrid = new \SendGrid($API_KEY);
   $email = new \SendGrid\Mail\Mail();
   $email->setFrom("********@gmail.com","***** SAMA");
   $email->setSubject("Email de teste");
   $email->addTo("*****@gmail.com","****SAMA");
   $email->addContent("text/plain",$comentario);

   If($sendgrid->send($email));
        {
            $msg = "Obrigado pelo seu contacto!";
        }

使用此代码,我可以发送电子邮件,但是没有附件。

问题是当我添加以下代码行时,电子邮件停止发送到我的收件箱:

    $attachment = $pdf;
    $file_encoded = base64_encode(file_get_contents($attachment));
    $email->addAttachment(
    $file_encoded,"application/text","test.pdf","attachment"
    );  

有人可以帮我吗?

最诚挚的问候

解决方法

解决了以下代码行的问题:

$c = 0
Get-ChildItem |
  Rename-Item -NewName {if (++$script:c % 2) {"${c}a.jpg"} else {"$($c-1)b.jpg"}} -WhatIf