2014-02-26 34 views
0

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

[本链路修复创建在体内可变体内的问题] [1] [1]:http://stackoverflow.com/questions/12983673/php-smtp-邮件的接触形式?RQ = 1 – user1819551

回答

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);