ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 来自表单的WP邮件附件,无文件管理器上传文件

2019-07-11 12:32:11  阅读:211  来源: 互联网

标签:wordpress php email


从表单通过wp_mail函数我正在尝试发送带附件的电子邮件,而不将文件上传到文件管理器.
我收到附件的电子邮件.但附件名称不正确,没有文件类型.请帮忙解决这个问题.

这是HTML表单

<form action="POST" enctype="multipart/form-data">
    <table>
        <input type="file" name="Attached">
        <input type="Submit" name="Submit">
    </table>
</form>

有我的PHP代码

if (isset($_POST['Submit'])) {
    $attachments = $_FILES['Attached']['tmp_name'];

    $recipients = "john@mail.com";
    $SenderName = get_bloginfo('name');
    $SenderEmail = "noreply@domain.com";
    $body   = "How are you what are you doing now. bla bla bla";

    $recipients = array($to);
    $headers[] = "From: $SenderName <$SenderEmail>" . "\r\n";
    $headers[] = "Content-Type: text/html";
    $subj = "This is mail subject";
    $SendMail   = wp_mail( $recipients, $subj, $body, $headers, $attachments );
}

解决方法:

好吧,我不得不为这一个提出解决方法

我做的是

>将文件上传到服务器
>使用wp-mail发送电子邮件
>成功发送电子邮件或不成功;取消上传图片的链接

1.将文件上传到服务器

    /*image upload */
/* GET File Variables */
$target_dir = $_SERVER['DOCUMENT_ROOT']. "/uploads/";
$image_name = $_FILES['YOUR_IMAGE']['name'];
$target_file = $target_dir . basename($_FILES['YOUR_IMAGE']['name']);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image

$check = getimagesize($_FILES["YOUR_IMAGE"]["tmp_name"]);
if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
} else {
    echo "File is not an image.";
    $uploadOk = 0;
}


// Check file size
if ($_FILES["YOUR_IMAGE"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
    // if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["YOUR_IMAGE"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["YOUR_IMAGE"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}

$attachment = array($target_file);

2.使用wp-mail邮件

    $to = $Email; // put your email here
        $headers = array('Content-Type: text/html; charset=UTF-8','From:' . $name . '<' . $fromEmail . '>');

        // $headers = 'From:' . $name . '<' . $studentEmail . '>' . "\r\n"; // put user's email here or duplicate your email
        $subject = 'Apply Online Form';

        if (wp_mail($to, $subject, $message, $headers, $attachment ) === false) {
            echo "Error";
             unlink($target_file);
        } else {
             unlink($target_file);
            echo "<h3> Mail Sent Successfully</h3>";
        }

3.成功发送电子邮件或不取消链接上传的图像

unlink($target_file);

标签:wordpress,php,email
来源: https://codeday.me/bug/20190711/1431988.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有