【问题标题】:ExactTarget subscribe form also sends form detailExactTarget 订阅表单也发送表单详细信息
【发布时间】:2012-11-22 04:41:14
【问题描述】:

目前有一个向 ExactTarget 帐户提交信息的时事通讯订阅表单。 是否可以让相同的表单发送电子邮件,类似于 PHP 联系表单? 曾经这是一种 PHP 表单。

我确实查看了丹佛的 MailChimp 订阅表格选项: Mail Chimp Subscribe In Contact Form

此表单不需要复选框即可订阅时事通讯。

<form action="http://cl.exct.net/subscribe.aspx?lid=hidden" name="subscribeForm" method="post">  
<input type="hidden" name="thx" value="enewsletter-thank-you.php" />  
<input type="hidden" name="err" value="enewsletter-error.php" />  
<input type="hidden" name="MID" value="hidden" />

<ul class="contactForm">    
<li class="contactForm">
<label class="formFieldQuestion">E-mail Address:&nbsp;<span class="redrequired">*</span></label>
<input class="field-text" type="text" name="Email Address" size="20" value=""></li> 

<li class="contactForm">
<label class="formFieldQuestion">Full Name:</label>
<input class="field-text" type="text" name="Full Name" size="20" value=""></li>

<li class="contactForm">
<label class="formFieldQuestion">Company:</label>
<input class="field-text" type="text" name="Company or Organization" size="20" value=""></li>

<li style="padding-left:10px;">
<input id="saveForm" class="button_form" type="submit" value="Subscribe" name="submit"> </li>

</ul>
</form>

【问题讨论】:

  • 忘了注意电子邮件将包含与订阅字段相同的信息。
  • 您可以在提交时添加一个 ajax 调用,将数据发布到联系人发布网址。

标签: php forms email exacttarget


【解决方案1】:

是的,您可以将其作为 curl 请求发送。将您的表单操作更改为mail_and_submit.php

然后,在mail_and_submit.php

//extract data from the post
extract($_POST);

//set POST variables
$url = 'http://cl.exct.net/subscribe.aspx?lid=hidden';
$fields = array(
            'thx' => urlencode($thx),
            'error' => urlencode($error),
            'MID' => urlencode($MID),
... (etc)
);

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

然后,使用这些相同的字段构建电子邮件,然后发送,例如:

$message = 'A post was submitted:<br/>';
$message .= 'thx: ' . $thx;
$message .= 'error: ' . $error;
$message .= 'MID: ' . $mid;

... 等等,然后邮寄:

mail('some-email@address.com', 'Your Entry', $message);

【讨论】:

  • MID、thx 和 error 是 Exact Target 要处理的隐藏值,有没有办法通过 cURL 发送这些数据?此外,thx 和错误被重定向以确认用户已订阅或处理过程中发生错误。
  • cURL 可以工作,但 Exact Target 不像提交的表单数据,试图接受这个 Ajax 调用并更改它以提交数据:[l​​ink]gist.github.com/3841680
  • 然后你可以使用 jquery 来做 ajax,用 $.post("http://cl.exct.net/subscribe.aspx?lid=hidden", $("#subscribeForm").serialize()); 之类的东西来构建你的 post 变量
猜你喜欢
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
相关资源
最近更新 更多