HTMLフォームからメールを送信する方法 質問する

HTMLフォームからメールを送信する方法 質問する

HTML フォームのみを使用して電子メールを送信するために、mailto: post アクションを使用する例がたくさんあることは知っています。

しかし、これを使用すると、実際には Outlook ダイアログ ボックスなどの電子メール送信ダイアログ ボックスがポップアップ表示されます。また、電子メールの送信には実際に独自の SMTP サーバーが使用されます。

送信時に電子メールを送信するだけの HTML フォームを作成する方法はありますか?

この効果を実現できる JavaScript API はありますか? たとえば、node.js などでしょうか?

誰かコードサンプルを提供してもらえますか?

ベストアンサー1

他の人が言ったように、それはできません。Web 上で HTML-php フォームの優れた例を見つけることができます。ここに、検証用の HTML と JavaScript、および電子メールの送信用の PHP を組み合わせた非常に便利なリンクがあります。

記事全文(zip サンプルを含む)はソースでご確認ください:http://www.html-form-guide.com/contact-form/php-email-contact-form.html

HTML:

    <form method="post" name="contact_form"
    action="contact-form-handler.php">
        Your Name:
        <input type="text" name="name">
        Email Address:
        <input type="text" name="email">
        Message:
        <textarea name="message"></textarea>
        <input type="submit" value="Submit">
    </form>

JS:

    <script language="JavaScript">
    var frmvalidator  = new Validator("contactform");
    frmvalidator.addValidation("name","req","Please provide your name");
    frmvalidator.addValidation("email","req","Please provide your email");
    frmvalidator.addValidation("email","email",
      "Please enter a valid email address");
    </script>

PHP:

    <?php
    $errors = '';
    $myemail = '[email protected]';//<-----Put Your email address here.
    if(empty($_POST['name'])  ||
       empty($_POST['email']) ||
       empty($_POST['message']))
    {
        $errors .= "\n Error: all fields are required";
    }
    $name = $_POST['name'];
    $email_address = $_POST['email'];
    $message = $_POST['message'];
    if (!preg_match(
    "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
    $email_address))
    {
        $errors .= "\n Error: Invalid email address";
    }
    
    if( empty($errors))
    {
    $to = $myemail;
    $email_subject = "Contact form submission: $name";
    $email_body = "You have received a new message. ".
    " Here are the details:\n Name: $name \n ".
    "Email: $email_address\n Message \n $message";
    $headers = "From: $myemail\n";
    $headers .= "Reply-To: $email_address";
    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: contact-form-thank-you.html');
    }
    ?>

おすすめ記事