成功发送电子邮件后发送给CSV

问题描述:

我有一个主管表单,它在填写完毕后发送电子邮件通知。如果电子邮件成功,我怎样才能将这些数据写入服务器上的csv?成功发送电子邮件后发送给CSV

这是我的代码,现在它完全不做任何事情,填写电子邮件结束时的表单,但没有写入CSV。

逻辑是(可能是错误的),如果它到达succ消息,打开file.csv并将$ email_f写入并关闭csv。

我在做什么错了?

<?php 
if($_POST['email']){ 
    $email_f = $_POST['email']; 
    $to = "[email protected]"; 
    $subject = "subject"; 

    $message = "<html xmlns='http://www.w3.org/1999/xhtml'> 
    <head> 
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 
    </head> 
    <body> 
    <strong>Title</strong><hr /> 
     <table align='center' width='99%' border='0' cellpadding='0' cellspacing='0'> 
     <tr bgcolor='#cccccc'><td width='30%' style='padding:7px 5px; font-weight:bold;'>Email:</td><td style='padding:7px 5px;'>".$email_f."</td></tr>  
     </table> 
    </body> 
    </html>"; 

    //echo $message; 
    $headers = "From: <[email protected]>\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=ISO-8859-1\r\n"; 
    $headers .= 'Bcc:' . "\r\n"; 
    $mail = mail($to, $subject, $message, $headers); 
    if($mail) 
    { 
     echo "succ"; 
     $file = 'file.csv'; 
    $file = fopen($file, 'a'); 
    fputcsv($file, $email_f); 
    fclose($file); 
} 
} 






?> 

我也试过这样:

$list = array ($mail()); 

    $fp = fopen('/file.csv', 'w'); 
    foreach ($list as $fields) { 
     fputcsv($fp, $fields); 
    } 
    fclose($fp); 

好吧越来越近了,我说这SNIPPIT这将打开文件,但不写东西给它,任何想法?:

$list = array(

    mail($to, $subject, $message, $headers) 
    ); 

    $fp = fopen('file.csv', 'w'); 

    foreach ($list as $fields) { 
     fputcsv($fp, $fields); 
    } 
    fclose($fp); 
+0

使用http://php.net/manual/en/function.error-reporting.php设置捕捉和显示;它显示了什么? –

+0

^这是一个问题,顺便说一句,就像你的问题,你也喜欢答案吗?同上;-) –

+0

fputcsv $ field参数必须是数组。尝试将$ email_f放入数组中 –

此代码适用于任何人想知道的事情!

$list = array(

    $email_f 

    ); 

    $fp = fopen('file.csv', 'a'); 

    foreach ($list as $fields) { 
     fputcsv($fp,explode(',', $fields)); 
    } 
    fclose($fp);