簡體   English   中英

使用jquery ajax和php發送帶附件的電子郵件

[英]send email with attachment using jquery ajax and php

我創建了一個程序來發送帶附件的電子郵件。 首先,我創建它沒有ajax。 然后它運作正常。 但是當我使用jquery ajax時它不起作用。 當我點擊應用按鈕時沒有任何反應。 我的代碼如下。

<form action="sendemail.php" enctype="multipart/form-data" method="post">
                <h1 class="cta-title">Its a Call To Action</h1>
                <div class="cta-desc">
                    <input type="text" value='<?= $row['catogary'];?>' readonly style="width: 75%"><br><br>
                    <input type="text" value='<?= $row['company_name'];?>' readonly style="width:    75%"><br><br>
                    <input type="text" value='<?= $row['location'];?>' readonly style="width: 75%"><br><br>
                    <input type="text" value='<?= $row['qulification'];?>' readonly style="width: 75%"><br><br>
                    <input type="text" value='<?= $row['catogary'];?>' readonly style="width: 75%"><br><br>
                    <input type="text" value='<?= $row['indate'];?>' readonly style="width: 37.5%">&nbsp;
                    <input type="text" value='<?= $row['expdate'];?>' readonly style="width: 37.5%"><br>
                    <input type="text" id="email" name="email" value='<?= $row['email'];?>'><br>
                    <input type="file" name="uploaded_file" id="uploaded_file" class="text-center center-block well well-sm">
                    <input type="button" id="btn" name="btn" class="btn btn-primary" value="Apply">
                </div>
                    <script>
                        $('#btn').click(function () {
                            $.ajax({
                                method:"POST",
                                url:"sendemail.php",
                                data:{email:$('#email').val()},
                                success:function (data) {
                                    alert(data);
                                    return false;
                                }
                            });
                        });
                    </script>
                </form>

sendmail.php

    <?php
    $email2=$_POST['email'];
    require_once('PHPMailer/PHPMailerAutoload.php');
    $mail = new PHPMailer;
    $mail->IsSMTP(); // enable SMTP
    $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "getinternshipuwu@gmail.com";
$mail->Password = "uwucst14xxxx";
$mail->SetFrom("getinternshipuwu@gmail.com");
$mail->FromName = "Internship Management";

$mail->addAddress($email2);
/
$mail->addReplyTo("getinternshipuwu@gmail.com", "Reply");

$mail->isHTML(true);

$mail->Subject = 'CV for internship Vacancy';
$mail->Body =  "Attached";
if (isset($_FILES['uploaded_file']) && $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {

    $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],$_FILES['uploaded_file']['name']);
}

if(!$mail->send())
{
    echo "Mailer Error: " . $mail->ErrorInfo;

}
else
{
    echo 'Successfully Applied for vacancy';
}
?>

這是我的實施。 我改變了一些屬性。 但請注意重要的是,我為了我的目的改變ssl到tls和587。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>

</head>

<body>


    <form onsubmit="return submitForm();" enctype="multipart/form-data" method="post" name="fileinfo"  id="fileinfo" >
                <h1 class="cta-title">Its a Call To Action</h1>
                <div class="cta-desc">
                    <input type="text" value='a' readonly style="width: 75%"><br><br>
                    <input type="text" value='b' readonly style="width:    75%"><br><br>
                    <input type="text" value='c' readonly style="width: 75%"><br><br>
                    <input type="text" value='d' readonly style="width: 75%"><br><br>
                    <input type="text" value='e' readonly style="width: 75%"><br><br>
                    <input type="text" value='f' readonly style="width: 37.5%">&nbsp;
                    <input type="text" value='g' readonly style="width: 37.5%"><br>
                    <input type="text" id="email" name="email" value='iordanhs92@hotmail.com'><br>
                    <input type="file" name="files" id="files" class="text-center center-block well well-sm">
                    <input type="submit" id="btn" name="btn" class="btn btn-primary" value="Apply">
                </div>
                    <script>
                       function submitForm() {

                        console.log("submit event");

                        var fd = new FormData(document.getElementById("fileinfo"));
                        fd.append("label", "WEBUPLOAD");

                        $.ajax({
                          url: "mailattach.php",
                          type: "POST",
                          data: fd,
                          processData: false,  // tell jQuery not to process the data
                          contentType: false   // tell jQuery not to set contentType
                        }).done(function( data ) {
                                console.log("PHP Output:");
                                console.log( data );
                            });
                            return false;
                        }
                    </script>
                </form>


</body>
</html>

所以,在php中,我也將upload_file更改為文件。 mailattach中的php代碼與您提供的相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM