【问题标题】:attaching generated pdf to form and send in phpmailer将生成的 pdf 附加到表单并在 phpmailer 中发送
【发布时间】:2017-06-22 16:49:08
【问题描述】:

我能够生成 pdf 并将生成的 pdf 作为附件发送到输入的电子邮件 ID。但我想要类似的东西,当我点击电子邮件时,它应该生成 pdf 并打开一个带有用户输入字段的表单,如收件人、消息、主题......等等......并且生成的 pdf 应该显示为附件

现在当点击电子邮件时,它会打开一个用户输入表单,然后当我点击发送时,它会生成 pdf 并发送该 pdf。

这是我的代码

我的html表单

<form method="post" action="send_mail.php" enctype="multipart/form-data">
<div class="formSep">
<label class="req">To Email: </label>
<input type="text" name="email" /> &nbsp;&nbsp;&nbsp;&nbsp; <select name="email"><option value="">Select one</option><?php $s1 = mysql_query("select * from lead_contact where company_id=".$company."");
while($r1 = mysql_fetch_array($s1)) { $name = $r1['firstname'].' '.$r1['lastname'];
$cid = $r1['con_id'];
$cemail = $r1['email']; ?>
<option value="<?php echo $cemail;?>"><?php echo $name;?></option>
<?php
}
?>
</select>
</div>
<input type="hidden" name="order_id" value="<?php echo $order_id; ?>" />
<input type="hidden" name="company" value="<?php echo $company; ?>" />

<div class="formSep">
<label class="req">Subject</label>
<input type="text" name="subject" /></div>

<div class="formSep">
<label class="req"> Message</label>


<div class="w-box" id="n_wysiwg">
<div class="w-box-header">
<h4>WYSIWG Editor</h4>
</div>
<div class="w-box-content cnt_no_pad">
<textarea name="message" id="wysiwg_editor" cols="30" rows="10"></textarea>
</div>
</div>
</div>


<div class="formSep">

<input type="submit" name="submit" value="Submit" class="btn btn-info" /></div>

</form>

send_email.php

<?php
if($_POST['submit'] == "Submit")
{

    $id = $_POST['order_id'];
    $company = $_POST['company'];
    include("../admin_auth.php");


include("../connect.php");
require('invoice.php');

$pdf = new PDF_Invoice( 'P', 'mm', 'A4' );
$pdf->AddPage();


//MY PDF CODE GOES HERE

$pdf->Output("D:/wamp/www/folder/uploads/".$id.".pdf","F");

$path = "D:/wamp/www/folder/uploads/".$id.".pdf";
require("class.phpmailer.php");
require("class.smtp.php");



$to = $_POST['email'];
$from = $_SESSION['email'];
$message = $_POST['message'];

$subject = $_POST['subject'];

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->Host = "hostname";

$mail->SMTPAuth = true;
$mail->Username = 'user';
$mail->Password = 'password';
$mail->Port = 587;
$mail->From=$_SESSION['email'];
$mail->FromName=$_SESSION['name'];
$mail->Sender=$email;


$mail->AddAddress($to);



$mail->AddBCC("test@test.com");
$mail->AddAttachment($path, '', $encoding = 'base64', $type = 'application/pdf');
$mail->Subject = $subject;

$mail->CharSet="windows-1251";
$mail->CharSet="utf-8";

$mail->IsHTML(true);


$mail->Body = $message;


if(!$mail->Send())
{
echo "Error sending: " . $mail->ErrorInfo;;
}
else
{
echo "Email Sent!";
}
}
?>

我不知道如何获取附有 pdf 的表单,以便用户可以在正文中书写、添加抄送和发送电子邮件

【问题讨论】:

    标签: php pdf phpmailer


    【解决方案1】:

    试试这个..

    $path = "D:/wamp/www/folder/uploads/".$id.".pdf";
    
    $mail->addCC('cc@example.com');    //Cc stands for carbon copy
    $mail->addBCC('bcc@example.com'); //Bcc stands for blind carbon copy
    
    $mail->AddAttachment($path, '', $encoding = 'base64', $type = 'application/pdf');
    

    注意:供 PHP MAILER 参考:

    检查这个: https://github.com/PHPMailer/PHPMailer

    Cc 代表抄送,表示其地址出现在后面 Cc: 标头将收到消息的副本。此外,抄送 header 也会出现在接收到的消息的 header 中。

    Bcc代表密件抄送,类似于抄送,除了 此字段中指定的收件人的电子邮件地址 不会出现在收到的邮件标题和收件人中 或抄送字段将不知道副本发送到这些地址。

    【讨论】:

    • 我认为你没有得到我想要的东西!。当我点击电子邮件时,应该生成 pdf 并且带有表单的 html 编辑器应该打开并附有 pdf。在那个用户应该能够写或抄送等然后他会点击发送
    • 那你得先写那个表格的代码。 ..那个打开...然后在php中你必须编写相同的代码如果设置电子邮件..按钮
    • 表单正在打开,但 pdf 未附加。这就是我的问题所在
    • 根据我在我的 ans 中发布的内容。检查
    【解决方案2】:

    如果你的基本 PHP 语法正确,它真的很有帮助。这是毫无意义的:

    $mail->AddAttachment($path, '', $encoding = 'base64', $type = 'application/pdf');
    

    你只需要这个:

    $mail->AddAttachment($path);
    

    它会为你处理剩下的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多