0

我一直在查看 StackOverflow 和其他论坛网站,但我仍然不知道如何完成我正在做的事情。

我想在我正在开发的网站中发送个性化的电子邮件(可以是文本或 html)。

我正在使用 ajax 发送邮件列表、主题和正文。代码看起来像这样

这是.js

    function loadsentmail(){

var subject = document.getElementById("subject_title").value;
var content = tinyMCE.get('content').getContent();
var from = "somemail@mail.com";
var body = new Array();
body[0]=content;
$.ajax({
type:'POST',
url:'sendmail.php?mails='+mails+'&names='+names+'&idgroup='+idGrupo+'&subject='+subject+'&body='+body+'&from='+from+'&flag=1',
data: {},
            success:function(result){

                alert("Mail sent correctly");
                },
            error:function(){
                alert("Mail was not sent");
            }
});
}

这是.php

$to = $_GET['mails'];
$names = $_GET['names'];
$subject=$_GET['subject'];
$from = $_GET['from'];
$body = $_GET['body'];
$flag=$_GET['flag'];
$groupId=$_GET['idgroup'];
echo $flag;
$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "From: Some Company <somemail@somemail.com>\r\n"; 
$headers .= "Reply-To: somemail@somemail.com\r\n"; 
$headers .= "Return-path: somemail@somemail.com\r\n"; 
$headers .= "Cc: somemail@somemail.com\r\n"; 
$headers .= "Bcc: somemail@somemail.com\r\n";
switch($flag)
{
case 1:
    if (mail($to, $subject,$body,$headers)) {
        echo("<p>Message successfully sent!</p>");
} 
    else {
echo("<p>Message delivery failed...</p>");
    }
break;
} 

到目前为止一切顺利,我用小身体进行了测试,它可以工作,但是一旦我粘贴了一个大的 html 文件,我得到了以下错误

<h1>Request-URI Too Large</h1>
<p>The requested URL's length exceeds the capacity
limit for this server.<br />
</p>

将大正文从 .js 发送到 .php 的最佳做法是什么?我在整个互联网上搜索了很多,但我仍然可以找到答案。请帮助我:S

4

1 回答 1

0
$.ajax({
 type:'POST',
 url:'sendmail.php',
 data: {
  mails: mails,
  names: names,
  idgroup: idGrupo,
  subject: subject,
  body: body,
  from: from,
  flag:1
 },
 type: "POST",
 success:function(result){

    alert("Mail sent correctly");
 },
 error:function(){
    alert("Mail was not sent");
  }
});

Post 将允许更大的数据集,并且使用 jquery ajax 即使您使用 GET,您也应该使用数据对象发送数据。

我也相信(我是 perl 而不是 php 开发人员,所以您需要查看此内容)您需要更改您的 php 以从 Post obj 中获取。 $to = $_GET['mails'];会变成$to = $_POST['mails']

于 2013-06-26T16:43:54.167 回答