梨/邮件在正文中发送数组。

时间:2014-02-26 03:50:28

标签: php arrays forms email post

我有两个问题,当我使用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);

这个在正文中显示“(数组)”。 我需要一些建议或路线。

1 个答案:

答案 0 :(得分:0)

$smtp->sendbody参数取一个字符串,而不是一个数组(你可以在这里看到:http://pear.php.net/manual/en/package.mail.mail.send.php)。您应首先使用PHP implode从数组中创建一个字符串,然后将其作为参数传递,例如。

$str = implode("\n", $message);
$mail = $smtp->send($to, $headers, $str);