web-dev-qa-db-ja.com

ボタンをクリックするだけで自動的にメールを送信する

私は緊急時対応ページを設計しています。必要な機能の1つは、ボタンをクリックして(たとえば、「大使館に詳細を送信」)、自動生成された電子メールを目的の受信者に送信できるようにすることです($email_address)MicrosoftOutlookにアクセスして[送信]をクリックする必要はありません。これを行う方法はありますか?

私が知っている唯一の方法は<a href='mailto:[email protected]'> 1つですが、これによりOutlookで電子メールが開き、完全に自動化する必要があります。

6
Daniel H

このようなものが出発点として機能します:

<form action="" method="post">
    <input type="submit" value="Send details to embassy" />
    <input type="hidden" name="button_pressed" value="1" />
</form>

<?php

if(isset($_POST['button_pressed']))
{
    $to      = '[email protected]';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: [email protected]' . "\r\n" .
        'Reply-To: [email protected]' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

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

    echo 'Email Sent.';
}

?>

[〜#〜]更新[〜#〜]

これをJavascript関数として使用して、mail.phpページを呼び出し、ページをリロードせずに電子メールを送信できます。

function sendemail()
{
    var url = '/mail.php';

    new Ajax.Request(url,{
            onComplete:function(transport)
            {
                var feedback = transport.responseText.evalJSON();
                if(feedback.result==0)
                    alert('There was a problem sending the email, please try again.');
            }
        });

}

このメソッドにはプロトタイプが必要です: http://www.prototypejs.org/api/ajax/request

私はこれをテストしていませんが、うまくいけば、それは正しい線に沿っているはずです。

9
gmadd

PHPは、 メール関数 を使用した電子メールの送信をサポートしています。例はPHPドキュメントにあります。(リンクを参照)

PHPドキュメント:の例

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('[email protected]', 'My Subject', $message);
?> 
0
Rhapsody