mail()将消息作为.txt文件发送

时间:2012-08-30 10:13:13

标签: php

我对PHP很陌生,所以不介意@ ...是一个快速解决方法,可以毫无错误地打开脚本

我目前正在研究邮件脚本并且它的工作非常好。 遗憾的是,它将用户输入的文本作为.txt文件而不是纯文本

发送

基本上,表单存储在messenger_mailsend.php中,并且使用messenger_mailsend_controller.php将Textarea的内容转到$_POST[]

    @$inhalt = $_POST['inhalt'];
    $message = strip_tags($inhalt);

    if(isset($_POST['submit'])){
    @mail($mailto, $subject, 'why not zoidberg?', $headers); 
    echo 'The mail was sent!';
    }

'为什么不zoidberg'是我用来检查var是否错误的测试文本,实际上它是mail($mailto, $subject, $message, $headers);

是我用来从表单中获取输入消息的代码,删除标记并将其存储为$message

如果我做了var_dump,它会说'我很满意'(表格中输入的内容).. 当$message var被某些纯文本替换时,它仍会以TEXT.txt

的形式发送

我用于$ header的代码是:

    $headers .= 'From:' . $usrmail . "\n";
$headers .= 'Reply-To:' . $reply . "\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\n";
$headers .= 'X-Sender-IP:' . $_SERVER['REMOTE_ADDR'] . "\n";
$headers .= 'Content-type: text/html; charset=ISO-8859-1\r\n';

$headers .= 'Cc: ' . $cc . "\n";
$headers .= 'Bcc: ' . $bcc . "\n";

- 解决方案:通过将内容类型设置为text / plain,它可以运行,感谢任何人! -

1 个答案:

答案 0 :(得分:0)

当你在发送之前剥离所有的html标签时,你怎么能期望邮件以html的形式发送....

但是,如果要发送html邮件,则必须在发送之前在标题中定义相同的内容。请参阅代码段:

$to = 'bob@example.com';
$subject = 'Website Change Reqest';

$headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
$headers .= "CC: susan@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

@$inhalt = $_POST['inhalt'];
$message = strip_tags($inhalt);

然后你发送这样的邮件:

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