带邮件的php邮件附件

时间:2015-07-28 08:14:13

标签: php phpmailer email-attachments

我已经看到这是一个常见的问题,但通过搜索,我找不到我需要的答案。我使用PHP代码创建了一个邮件,其中包含位于我服务器上的附件。

我的网站有一个CRUD系统,read.php文件显示上传文件的各种元素。我还在此页面上有一个表单,允许用户输入并通过电子邮件发送地址和消息以便在该文件上发送。

我的表单代码是: -

<form class="form-horizontal" action="mailer.php" method="post">

                  <div class="form-group">
                    <label class="col-sm-2">Email Address</label>
                    <div class="col-sm-4">
                        <input name="doc_email" type="text" placeholder="Enter Email Address to" class="form-control" >
                    </div>
                  </div>


                  <div class="form-group">
                    <label class="col-sm-2">Message</label>
                    <div class="col-sm-4">
                        <input name="doc_message" type="text"  placeholder="Enter a message (not mandatory)" class="form-control"  >
                    </div>
                  </div>



                  <div class="form-actions">

                      <button type="submit" class="btn btn-success">Send Email</button>
                                            </div>
                </form>

目前我的mailer.php代码; -

<?php 
if (isset($_POST['submit']))
    {
$file_name  = $_POST['file_name'];
$doc_email  = $_POST['doc_email'];
$doc_message    = $_POST['doc_message'];

require_once('class.phpmailer.php');

$email = new PHPMailer();
$email->From        = 'you@example.com';
$email->FromName    = 'Your Name';
$email->Subject     = 'Message Subject';
$email->Body        = $doc_message;
$email->AddAddress  = $doc_email; 

$path_file_to_attach     = '/documents/uploads/';
$file_to_attach      = $file_name;

$email->AddAttachment( $path_file_to_attach , $file_to_attach );

return $email->Send();

//redirect user after success
header("Location: index.php");
}
?>

class.phpmailer.php文件与read.php / mailer.php位于同一目录(/ documents)中,我得到的是一个没有电子邮件或错误的空白屏幕。

包含文件的文件夹位于名为&#39;上传&#39; ... documents / uploads /

的子文件夹中

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你有两件事是空的:

<input type="text" name="file_name">

只需添加到您的HTML:

<button type="submit" name="submit"></button>

和你的按钮

function array_to_attributes ( $array_attributes )
{

    $attributes_str = NULL;
    foreach ( $array_attributes as $attribute => $value )
    {

        $attributes_str .= " $attribute=\"$value\" ";

    }

    return $attributes_str;
}

$attributes = array(
    'data-href'   => 'http://example.com',
    'data-width'  => '300',
    'data-height' => '250',
    'data-type'   => 'cover',
);

echo array_to_attributes($attributes) ;