• 解決済 djcomkato

    (@djcomkato)


    自力で解決しようとしましたが、ちょっと無理そうだったので質問させてください。

    Contact Form 7 のショートコードを本文に貼り付けてフォームを表示させますが、その記事を書いた人宛てにメールを送信することは可能でしょうか?

    管理者画面の宛先欄に [author_email] などと入れて the_author_meta(user_email) を呼び出せればどうにかなるかと思ったのですが、どこに挿入したらいいのか分かりませんでした。

    良い実現方法がありましたら教えてください。
    よろしくお願い致します。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • モデレーター Takayuki Miyoshi

    (@takayukister)

    これは難しいですね。

    やるとしたら modules フォルダの中にある各種モジュールの実装を参考に、独自のモジュールを作る必要があります。

    フィルタやアクションフックが要所要所に用意されてますので、それらをうまく利用すれば実現できるでしょう。

    トピック投稿者 djcomkato

    (@djcomkato)

    ご回答ありがとうございます
    難しいのですね・・・ (;_;)

    もうちょっと頑張ってみます

    モデレーター IKEDA Yuriko

    (@lilyfan)

    あと、こういう機能を実装する場合、スパム送信の踏み台とされる恐れがあります (任意のメールアドレスにメール送信できるわけだから)。このため、「同じ IP アドレスからは1日 NN 回までしか受け付けない」などの対策を取る必要があるでしょう。

    トピック投稿者 djcomkato

    (@djcomkato)

    >lilyfanさん
    アカウント登録を公開している場合は確かに危険ですが、特定少数のアカウントしか無くかつここに書いてある「パイプのサポート」と同等のことをアカウント連動でやろうとしているだけのことなので、仰られているスパムリスクは低いかと思います。

    結局、作者から「難しい」と言われていることにWordPress初級者が頑張ったところで出来そうにないので、今回は諦めて別の方法で回避することにしました。

    ありがとうございました。

    モデレーター Takayuki Miyoshi

    (@takayukister)

    まあその、「難しい」といったのは「簡単ではない」というぐらいの意味だったので、気が向いたらプラグイン作成の練習のつもりでやってみてください。やってみてどうしてもわからないことがあれば質問してもらえば答えられると思思いますので。

    lilyfan さんの指摘されたポイントは非常に重要です。今回は該当しないのかもしれませんがいい機会なので強調しておきます。

    なお、立派なスパマーになると何百という IP アドレスを使いわけて送ってくるので、さらに CAPTCHA や Akismet のフィルタリングを駆使して二重三重の対策をお勧めします。ただしそれをしても人力スパマーの前には何の効果もありません。100%完全な対策はありません。

    フォーム投稿者自身に確認メールを返す機能というのはよく見られますが、このようなリスクがあることを十分理解した上での使用を心がけてください。(> フォームをご利用のみなさま)

    トピック投稿者 djcomkato

    (@djcomkato)

    なるほど、確かにスパムリスクに関しては十分注意しないといけないですね。
    ただ、一般ユーザー相手のお問い合わせフォームとして使う場合は、あまりハードルを上げてしまうと集客を切ってしまうことになるので、うまくバランスを取らないといけないですね。

    あと、先ほど書いた「別の回避策」ですが、以下のようなコードを書いてみました。

    function wpcf7_set_class_author_name() {
    	if ( !is_single() ) { return; }
    
    	$output[] = "\n";
    	$output[] = '<script type="text/javascript"><!-- ';
    	$output[] = 'jQuery(document).ready(function() {';
    	$output[] = "jQuery('.wpcf7_author_name').val('" . get_the_author_meta('user_nicename')  . "')";
    	$output[] = "  .attr('readOnly','true')";
    	$output[] = '});';
    	$output[] = '// --></script>';
    
    	echo join("\n", $output);
    }
    add_filter('found_posts', 'wpcf7_set_class_author_name');

    これで、フォーム内に

    [text author_name class:wpcf7_author_name class:hidden]

    と書いて、フォーム経由で「投稿者名」を飛ばすようにしようと思います。

    問題点等あれば、ご指摘頂けますようお願い致します。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    あ、今回はフォーム送信者じゃなくて、投稿ごとにコンタクトフォームを入れて、その投稿の作成者にメールを送るという話でしたか。
    通常のコメントフォームならば、投稿の作成者に通知メールが飛ぶので、それで十分な気がしますが、何か足りないでしょうか??

    フォーム送信者にメールを返すのは、まさにスパム送信の踏み台になるので (スパムを送りたい相手のアドレスを「自分のアドレス」として入れてしまえばいい)、けっこう危険です。

    トピック投稿者 djcomkato

    (@djcomkato)

    コメントでは Contact Form 7 ばりに項目を増やすことは出来ないと思いますし、個人的な内容を公開してしまうリスクもあるので、コメントでの運用は厳しいと思います。

    そういや、コメントに対して投稿者にメール飛びましたね。
    コメントのメール送信機能を活用出来たりするのかな???

    フォーム送信者にメールを返すのは、まさにスパム送信の踏み台になるので (スパムを送りたい相手のアドレスを「自分のアドレス」として入れてしまえばいい)、けっこう危険です。

    その観点は抜けてました。ありがとうございます。
    とすると、自動返信したい場合は、

    • 自動返信するときは、定型固定文章にする
    • 送信者は捨てても良いアドレスにして、「このアドレスに返信しないでください」と注意書きを入れる

    という、良く見かけるパターンにするのがベターっぽいですね。

    モデレーター Takayuki Miyoshi

    (@takayukister)

    話がそれてしまって恐縮ですが、気になったのでちょいと補足を。

    • 自動返信するときは、定型固定文章にする
    • 送信者は捨てても良いアドレスにして、「このアドレスに返信しないでください」と注意書きを入れる

    基本的にこれらは相手が本物のユーザーだということを前提にしない限り対策として意味をなしません。どのような対策をしたとしても任意のメールアドレスへの自動返信というのは多大なリスクを伴うものなのです。リスクに見合う理由がなければ自動返信の機能は使用するべきではない、と言い切ってしまってよろしいかと。

    あと、実際にスパムやその他の被害が発生してしまったときに、なるべく早い段階で被害に気づけるようにしておくこと、それから、実際に誰にメールが送られてしまったのか、誰に謝ればいいのか、トレースできるようにしておくことは非常に重要です。自動返信が送られるときは管理者にも必ずメールが届くようにしておくとよいでしょう。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「その記事の投稿者にメールを送信したい」には新たに返信することはできません。