2014-02-26 65 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);