我有两个问题,当我使用PEAR/Mail将表单发送到我的电子邮件时,会收到电子邮件,但它只允许我发送3个变量。也就是说,我正在尝试发送一个值数组,但我的脚本只在消息体上打印“Array”一词。这是我的代码:
require_once "Mail.php";
$from = $_POST['email'];
$to = "xxxxxxxx";
$subject = $_POST['Evento'];
$name = $_POST['Nombre'];
$body = $_POST['mensaje'];
$host = "xxxxxxx";
$username = "xxxxxxx";
$password = "xxxxxxx";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $name, $body);
此代码连接并发送电子邮件,但如果我将显示切换为$name
,则只显示第三个变量($body
)。所以我想,让我们创建一个数组并在一个变量中发送所有消息。所以我做到了:
require_once "Mail.php";
$from = $_POST['email'];
$to = "xxxxxxx";
$subject = $_POST['Evento'];
$name = $_POST['Nombre'];
$body = $_POST['mensaje'];
$host = "xxxxxxx";
$username = "xxxxxxx";
$password = "xxxxxxx";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$消息=阵列($ _ POST [农布雷],$ _ POST [事件摘要],$ _ POST [日期星],$ _ POST [telefono],$ _ POST [mensaje]);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $message);
这个在正文中显示“(数组)”。 我需要一些建议或路线。
答案 0 :(得分:0)
$smtp->send
为body
参数取一个字符串,而不是一个数组(你可以在这里看到:http://pear.php.net/manual/en/package.mail.mail.send.php)。您应首先使用PHP implode
从数组中创建一个字符串,然后将其作为参数传递,例如。
$str = implode("\n", $message);
$mail = $smtp->send($to, $headers, $str);