使用PHPMailer发送附件文件

时间:2014-06-27 15:06:00

标签: php phpmailer

这是我使用PHPMailer使用PHPMailer通过邮件发送附件的代码。我在localhost中试试这个功能完美。但是,一旦我上传到我的服务器,就不会发送附件。

$email = new PHPMailer();
$email->From      = 'john@hotmail.com';
$email->FromName  = 'John';
$email->Subject   = 'Message Subject';
$email->Body      = 'test';
$email->AddAddress( 'william@hotmail.com' );

$file_to_attach = $_FILES["cv"]["tmp_name"];

$email->AddAttachment( $file_to_attach , $_FILES["cv"]["name"]);

return $email->Send();

我无法收到附件文件并上传。

我错过了任何代码吗??

2 个答案:

答案 0 :(得分:0)

您的代码没有任何问题 - 它适用于localhost(以及我),因此它必须是您的服务器环境的问题。这可能是几件事:

没有安装邮件服务器的Windows服务器?它可能是您上传文件的权限,或者根本就是上传文件的权限,因为这也是通过php.ini控制的。

我建议你分开各个阶段:

  • 上传文件并保存,检查服务器上是否有文件。

  • 检查您的PHP脚本是否可以查看和读取上传的文件(和 请read the docs了解如何做 这是正确的。)

  • 发送一封没有附件的简单电子邮件。如果这有效,你就会知道你的 邮件服务器还可以。

当所有单件都在工作时,将它们连接在一起。

答案 1 :(得分:0)

<?php 
if(isset($_POST['sbt_resume'])){
    $ext = explode('.',$_FILES['upload_resume']['name']);
    $extension = $ext[1];
    $newname = uniqid();
    $full_local_path = 'resume/'.$newname.'.'.$extension;
    $upld = move_uploaded_file($_FILES['upload_resume']['tmp_name'], "$full_local_path");
    require_once('PHPMailer/class.phpmailer.php');
    $emailid = new PHPMailer();
    $emailid->IsSMTP(); // enable SMTP
    $emailid->SMTPAuth = true; // authentication enabled
    $emailid->Host = "smtp.gmail.com";
    $emailid->Port = 465; // or 587
    $emailid->IsHTML(true);
    $emailid->SMTPSecure = 'ssl';
    $emailid->Username = "yourgmail@gmail.com";
    $emailid->Password = "";
    $emailid->From = "yourgmail@gmail.com";
    $emailid->FromName = $name;
    $emailid->Subject = ".";
    $emailid->Body = "Atachement";
    $emailid->AddAddress("");
    $emailid->AddBCC($email);
    $emailid->AddAttachment($full_local_path);
    $emailid->Send();
    echo "<font style='color: green; margin-top: 10px;'>Thank you for upload your Resume we will get back you soon.</font>";
}
?>

<form class="contact-form clearfix" action="" method="post" enctype="multipart/form-data">
 <div class="row">      
        <!-- col-md-3 -->
        <div class="col-md-4 col-sm-4 col-xs-4">
            <div class="input-label">
                <p style="padding-top: 10px;">upload <span>*</span></p>
            </div>
        </div>
        <div class="col-md-4 col-sm-4 col-xs-4">
                <input accept="" type="file" name="upload_resume" class="valid" style="border: 1px solid #E0E0E0;padding: 12px 15px;">
        </div>
        <!-- col-md-9 -->
    </div>
    <!-- row --> 

    <!-- row -->
    <div class="row">
        <div class="col-md-12 col-sm-12 col-xs-12">
            <p class="contact-button clearfix">                    
                <span><input type="submit" name="sbt_resume" value="Send" id="submit-contact"></span>
            </p>
        </div>
        <!-- col-md-12 -->
    </div>
    <!-- row --> 
</form>