textareaに入力した改行を自動送信メールは無効にしたい

STWさん (2021-05-19 17:17:27) test-mori.stworks.co.jp/mailform/

いつもお世話になっております。
Mailform Pro 4.1.2を使用させていただいております。

textareaで入力したテキストの改行(エンターキーでの改行)を
自動送信メールでは改行せずに表示させることは可能でしょうか?

textarea入力時に改行できないようスクリプトを設置したのですが、
すでに改行されたテキストをコピペでフォーム入力欄に貼り付けた場合、改行が適用されてしまったので、
Mailform Proでメールの改行を無効にできないかと思いまして、質問させていただきました。

可能でしたら、どこをどのように編集すればよいかお教えいただければと思います。
よろしくお願いいたします。

標準の機能ではちょっと難しいですね

和田憲幸 (2021-05-20 22:44:02) www.synck.com

情報を受け取った際に改行をすべて取り除く!というような処理を追加することでそのようなことを行うことはできます。具体的にはcore.cgiのsub _POSTという関数の中で、
$value =~ s///g;
と書いている次の行あたりに
$value =~ s/¥n//g;
と書くことですべての改行が取り除かれますが、取り除いては困るものも含めて取り除かれてしまう可能性もございます・・・。

textareaに入力した改行を自動送信メールは無効にしたい

STWさん (2021-05-21 11:03:28) test-mori.stworks.co.jp/mailform/

core.cgiのsub _POSTという関数の中に
$value =~ s///g;
がみあたりません。

試しに下記に $value =~ s/¥n//g; を追加したりしてみましたが、改行されてしまいました。
--------------------
sub _POST {
read(STDIN, $buffer, $ENV{’CONTENT_LENGTH’});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<br ¥/>/¥n/ig;
$value =~ s///g;
$value =~ s///g;
&_CheckProcess($name,$value);
if($_POST{$name} ne $null){
$_POST{$name} .= "¥n${value}";
}
else {
$_POST{$name} = $value;
push @ELEMENTS,$name;
}
}
&_POST_REBUILD;
}
--------------

すべての改行が取り除かれますが、取り除いては困るものも含めて取り除かれてしまう可能性もございます・・・。
とのことなので、できたとしても適切ではないので断念します。
ご教授ありがとうございました!

すいません、

和田憲幸 (2021-05-29 14:46:36) www.synck.com

$value =~ s/<br ¥/>/¥n/ig;
こちらの直後に追加してみていただけますでしょうか。