-2

私はPHPにかなり慣れていないので気にしないでください@...エラーなしでスクリプトを開くための簡単な修正でした

私は現在、メールスクリプトに取り組んでおり、かなりうまく機能しています。悲しいことに、ユーザーが入力した.txtテキストをプレーンテキストではなくファイルとして送信します

基本的にフォームは に格納されmessenger_mailsend.php、Textarea の内容は をmessenger_mailsend_controller.php使用して取得され$_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

$headers に使用するコードは次のとおりです。

    $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";

-- 解決策: content-type を text/plain に設定することで機能します。--

4

1 に答える 1

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);
于 2012-08-30T10:26:10.733 に答える