Javascript 使用wordpress发送带有附件的电子邮件
我是Wordpress的新手,在发送带有附件的电子邮件时,我非常挣扎:(我不知道怎么回事,但我知道我缺少一些代码。 请帮帮我。非常感谢你的帮助!:) 这是我的代码,它位于两个不同的文件中。 在my index.php中Javascript 使用wordpress发送带有附件的电子邮件,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我是Wordpress的新手,在发送带有附件的电子邮件时,我非常挣扎:(我不知道怎么回事,但我知道我缺少一些代码。 请帮帮我。非常感谢你的帮助!:) 这是我的代码,它位于两个不同的文件中。 在my index.php中 Name (required)<br> <input type="text" class="name"></input> Email (required)</br> <
Name (required)<br>
<input type="text" class="name"></input>
Email (required)</br>
<input type="text" class="e-mail"></input>
Attach Your Resume</br>
<input type="file" class="attachment" accept="image/gif, image/jpeg, image/png, application/pdf, application/msword"/>
<div id ="submit"><input id="button-submit" type="submit"></input></div>
</div>
<script type="text/javascript">
$('#button-submit').click(function(){
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
var names = $('.name').val();
var emails = $('.e-mail').val();
var attachments = $('.attachment').val();
if ( names =="" || emails=="" || attachments == ""){
alert('You must fill all the required fields!');
}else{
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
if(pattern.test(emails)){
/*$('#submit').html('<div class="loader"></div>');*/
jQuery.ajax({
url: ajaxurl,
type: 'POST',
dataType: 'html',
data: {action: 'resume',
txtname: $('.name').val(),
txtemail: $('.e-mail').val(),
attachment: $('.attachment').val(),
},
complete: function(xhr, textStatus) {
},
success: function(data, textStatus, xhr) {
$('#submit').html('Thank you for submitting!');
// $('.name').val("");
// $('.e-mail').val("");
// $('.attachment').val("");
},
error: function(xhr, textStatus, errorThrown) {
}
});
}
else{
alert("Invalid E-mail address format.");
}
}
return false;
});
名称(必填)
电子邮件(必需)
附上你的简历
$(“#按钮提交”)。单击(函数(){
var ajaxurl='';
变量名称=$('.name').val();
var emails=$('.e-mail').val();
var attachments=$('.attachment').val();
如果(名称=“”| |电子邮件=“”| |附件=“”){
警报('您必须填写所有必填字段!');
}否则{
变量模式=/^([a-zA-Z0-9_。-])+@([a-zA-Z0-9_。-])+\([a-zA-Z])+([a-zA-Z])+([a-zA-Z])+/;
如果(模式测试(电子邮件)){
/*$('#提交').html('')*/
jQuery.ajax({
url:ajaxurl,
键入:“POST”,
数据类型:“html”,
数据:{操作:“恢复”,
txtname:$('.name').val(),
TXTMail:$('.e-mail').val(),
附件:$('.attachment').val(),
},
完成:功能(xhr、textStatus){
},
成功:函数(数据、文本状态、xhr){
$(#submit').html('谢谢提交!');
//$('.name').val(“”);
//$('.e-mail').val(“”);
//$('.attachment').val(“”);
},
错误:函数(xhr、textStatus、errorshown){
}
});
}
否则{
警报(“无效的电子邮件地址格式”);
}
}
返回false;
});
这一个在my functions.php中找到并声明
function resume() {
$name = $_POST['txtname'];
$email = $_POST['txtemail'];
$attachments = $_POST['attachment'];
$headers = 'From: automailer@sample.ph' . "\r\n" .'Reply-To: automailer@sample.ph' . "\r\n" .'X-Mailer: PHP/' . phpversion();
$message .= "Contact Details:\n\nName: ".$name."\nEmail: ".$email."\nResume: ";
if (file_exists($attachments)) {
$handle = fopen($attachments, 'r');
$content = fread($handle, filesize($attachments));
fclose($handle);
$message .= '--' . "\n";
$message .= 'Content-Type: application/octet-stream; name="' . basename($attachments) . '"' . "\n";
$message .= 'Content-Transfer-Encoding: base64' . "\n";
$message .= 'Content-Disposition: attachment; filename="' . basename($attachments) . '"' . "\n";
$message .= 'Content-ID: <' . basename(urlencode($attachments)) . '>' . "\n";
$message .= 'X-Attachment-Id: ' . basename(urlencode($attachments)) . "\n" ."\n";
$message .= chunk_split(base64_encode($content));
}
else
{
$message .= "Attachment failed to upload.";
}
mail("sample@outlook.com", 'Careers', $message,$headers);
die();
}
函数恢复(){
$name=$_POST['txtname'];
$email=$_POST['txtemail'];
$attachments=$_POST['attachment'];
$headers='来自:automailer@sample.ph“.”\r\n“.”答复:automailer@sample.ph“.”\r\n“'X-Mailer:PHP/”.phpversion();
$message.=“联系人详细信息:\n\n姓名:.$name.\n邮件:.$email.\n邮件:”;
如果(文件_存在($attachments)){
$handle=fopen($attachments,'r');
$content=fread($handle,filesize($attachments));
fclose($handle);
$message.='-'。“\n”;
$message.='内容类型:应用程序/八位字节流;name=“'.basename($attachments)。”。“\n”;
$message.='内容传输编码:base64'。“\n”;
$message.='Content-Disposition:attachment;filename=“”.basename($attachments)。“.”“\n”;
$message.=“内容ID:”。“\n”;
$message.='X-Attachment-Id:'.basename(urlencode($attachments))。“\n.”\n“;
$message.=chunk_split(base64_encode($content));
}
其他的
{
$message.=“附件未能上载。”;
}
邮件(“sample@outlook.com“,‘职业’,$message,$headers);
模具();
}
要使用javascript上载文件,您需要设置接受文件请求的标题:
"Content-Type", "multipart/form-data"
要在jQuery脚本中实现它,还可以使用FormData类。
记住在jQueryAjax请求中设置这些选项。否则,您的请求将不包括该文件。有关更多信息,请参阅链接
contentType: false,
processData: false,
请参见此处的示例:
将FPDF复制到您的wp content/theme/yourtheme/download文件夹
在wordpress中发送带有附件的电子邮件
require('../fpdf181/fpdf.php');
$pdf=新的FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->Cell(40,10,$buyer_name);
$pdf->Cell(40,10,$product\u name\u semail);
$pdf->Cell(40,10,$order\u price\u semail);
$pdf->Cell(40,10,$species\u name\u semail);
$pdf->Cell(40,10,$finish\u name\u semail);
$pdf->Cell(40,10,$order\u date\u semail);
$filename=“文件路径/顺序-”$order\u id。“.pdf”;
$opt=$pdf->Output($filename,'F');
$to=$to_邮件;
$from=$from_邮件;
$headers=“From:”。剥去标签($from)。“\r\n”;
$headers.=“抄送:v。tamrakar@laxyosolutionsoft.com\r\n“;
$headers.=“密件抄送:$from\r\n”;
$headers.=“MIME版本:1.0\r\n”;
$headers.=“内容类型:text/html;字符集=ISO-8859-1\r\n”;
$message='';
$message.='';
$message.=“订单确认”;
$message.=“亲爱的$buyer\u data->user\u login,
我们衷心感谢您。您可以选择我作为您的订单。
您的订单详情在此”;
$message.=“产品详细信息
产品名称:衬衫”;
$message.='Category:'Cloth';
$message.=“价格:300/-”;
$message.=“发货日期:2016年6月25日”;
$attachments=array(WP_PLUGIN_DIR.'/file_name.pdf');
$message.=“
感谢和问候
Vivek Tamrakar
”;
$message.=“”;
$message.=“”;
wp_邮件($to,‘订单确认’、$message、$headers、$attachments);
谢谢比亚克,我会查看你提供的链接。!:)不使用“$\u FILES[]”捕获附件变量的内容,而仍然使用“$\u POST[]”是否可以?将此添加到函数中是否正确$标题='内容类型:多部分/表单数据;'。“\n”;在javascript中,您应该根据给定的示例设置两个选项(contentType和processData),并且在PHP文件中,您可以使用$\u文件绘制文件。应该是这样:)
require('../fpdf181/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->Cell(40,10,$buyer_name);
$pdf->Cell(40,10,$product_name_semail);
$pdf->Cell(40,10,$order_price_semail);
$pdf->Cell(40,10,$species_name_semail);
$pdf->Cell(40,10,$finish_name_semail);
$pdf->Cell(40,10,$order_date_semail);
$filename="file-path/order-".$order_id.".pdf";
$opt=$pdf->Output($filename,'F');
$to = $to_mail;
$from = $from_mail;
$headers = "From: " . strip_tags($from) . "\r\n";
$headers.= "CC: v.tamrakar@laxyosolutionsoft.com\r\n";
$headers.= "BCC: $from\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<table width="100%"; rules="all" style="border:1px solid #3A5896; padding-left:20px">';
$message .= '<span style="font-size: 14px;margin-bottom: 5px;padding: 7px 10px; background:#999999; color:#ffffff; float:left; margin-right:5px;">Order Confirmation </span>';
$message .= "<tr><td><h1>Dear $buyer_data->user_login,</h1><br /><br /><tr><td>We Are Heartly Thanks To You. You can Choose Me For Your Order.<br>Your Order Details Here</td></tr>";
$message .= "<tr><td style='font-size:14px;'>Product Details<br /><br /></td><tr><td style='width:20%'>Product Name: Shirt</td></tr>";
$message.='<tr><td style="width:20%">Category: 'Cloth'</td></td>';
$message.="<tr><td style='width:20%'>Price: 300/-</td>";
$message.="<tr><td style='width:20%'>Shipping Date: 25/06/2016</td>";
$attachments = array( WP_PLUGIN_DIR . '/file_name.pdf' );
$message .= "<tr><td style='font-size:12px'><br><I>Thanks & Regards<br>Vivek Tamrakar</I></td><br><br></tr>";
$message .= "</table>";
$message .= "</body></html>";
wp_mail( $to, 'Order Confirmation ', $message, $headers,$attachments);