[英]PhpMailer capture email address from form and add to variable
I'm working on a site which has a form capturing name, email etc. All works fine but I would like to add a CCed email to the user who filled the form in. 我正在一个具有捕获名称,电子邮件等形式的表单的网站上工作。一切正常,但是我想向填写表单的用户添加CCed电子邮件。
I want to add the supplied email address into a varable then send them an email using AddCC as below: 我想将提供的电子邮件地址添加到变量中,然后使用AddCC向他们发送电子邮件,如下所示:
$mail->AddCC 'test@test.com';
This works fine but how do I get the email address into a varable? 这可以正常工作,但是如何将电子邮件地址转换为变量?
This php script and form are below. 这个php脚本和表格如下。 Any help would be amazing, Thanks, James
任何帮助都将是惊人的,谢谢詹姆斯
//PHP
public function SendEmail( $email_address_array, $email_data, $subject, $template, &$send_message ) {
$smartyObj = Configurator::getInstance()->smarty;
$send_message = '';
$send_result = 0;
try {
$mail = new PHPMailer( true );
$mail->IsSMTP( true ); // telling the class to use SMTP
$mail->SMTPDebug = false;
$mail->IsHTML( true );
$mail->Host = Configurator::getInstance()->getSettings( "phpmailer_smtp" );
$mail->ClearAddresses();
for( $x = 0;$x < sizeof($email_address_array);$x++ ){
$mail->AddAddress( trim($email_address_array[$x]));
}
$smartyObj->assign( 'email_data', $email_data );
$mail->SetFrom( 'info@forexchange.co.uk', 'Forexchange Currency Order');
// NEW TEST
//$mail->AddCC ($usersemail);
$mail->Subject = $subject;
$mail->Body = $smartyObj->fetch( $template );
if(!$mail->Send()) {
} else {
$send_result = 1;
}
} catch (phpmailerException $e) {
$send_message = $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
$send_message = $e->getMessage(); //Boring error messages from anything else!
}
//echo $send_result;
//exit;
return $send_result;
}
// FORM //表格
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">ID Number</td>
<td>{$email_data.id_order|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Submission Date</td>
<td>{$email_data.cdate|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Name</td>
<td>{$email_data.name|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Email Address</td>
<td>{$email_data.email|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Phone</td>
<td>{$email_data.phone|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Currency</td>
<td>{$email_data.currency_code|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Amount</td>
<td>{$email_data.amount|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Rate</td>
<td>{$email_data.rate|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Pickup Point</td>
<td>{$email_data.pickup|escape:"html"}</td>
</tr>
<tr>
<td style="font-weight:bold; padding-right:15px; text-align:right;">Purchace Buy Back Product</td>
<td>{if $email_data.purchase_buy_back_status eq '1'}Yes{else}No{/if}</td>
</tr>
In your example, you need to use AddCC
within for loop
only to send email. 在您的示例中,您只需要在
for loop
使用AddCC
来发送电子邮件。
for( $x = 0;$x < sizeof($email_address_array);$x++ ){
// Email to User
$mail->AddAddress(trim($email_address_array[$x]));
// Email to Admin
$mail->AddCC(trim($email_address_array[$x]));
}
And, if you are passing email with Post method
in form like email[]
then below code will work. 而且,如果您通过
Post method
以类似于email[]
形式传递电子邮件,则下面的代码将起作用。
foreach($_POST['email'] as $key => $val){
// Check if Email coming
echo $_POST['email'][$key];
// Send Email Script
$mail->AddCC(trim($_POST['email'][$key]));
}
Below code will extract the email from your $email_data variable that contains email content. 下面的代码将从包含电子邮件内容的$ email_data变量中提取电子邮件。
$pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i';
preg_match_all($pattern, $email_data, $matches);
$email = $matches[0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.