Автоматическая отправка электронных писем одним нажатием кнопки

#php #email #mailto

#php #Адрес электронной почты #mailto

Вопрос:

Я разрабатываю страницу экстренного реагирования, и одна из функций, которая нам нужна, — это возможность нажать кнопку (например, «Отправить данные в посольство»), а затем отправить автоматически сгенерированное электронное письмо предполагаемому получателю ( $email_address ) без необходимости заходить в Microsoft Outlook и нажимать «Отправить». Есть ли способ сделать это?

Единственный известный мне метод — это <a href='mailto:example@test.com'> one, но он открывает электронную почту в Outlook, и мне действительно нужно, чтобы это было полностью автоматизировано.

Комментарии:

1. поскольку вы упомянули PHP, используйте PHP для этого, вы описываете ссылку mailto, которая распознается Outlook на веб-странице, а не PHP-код, отправляющий электронное письмо / текст / уведомление.

Ответ №1:

Что-то вроде этого могло бы сработать в качестве отправной точки:

 <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      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com' . "rn" .
        'Reply-To: webmaster@example.com' . "rn" .
        '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

Я не тестировал это, но, надеюсь, это должно быть в правильном направлении.

Комментарии:

1. Спасибо! я работаю около 3 дней, чтобы сделать это!!

Ответ №2:

PHP поддерживает отправку электронной почты с помощью почтовой функции. Вы можете найти примеры в документации PHP. (смотрите ссылку)

Пример из документации PHP:

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

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

// Send
mail('caffeinated@example.com', 'My Subject', $message);
?> 
  

Комментарии:

1. Спасибо Rhapsody, это работает хорошо. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я использую этот метод внутри mail.php файл, и я отправляю форму, после чего страница перенаправляется. Мне нужно, чтобы страница, с которой я отправляю электронное письмо, была полностью нетронутой, потому что на ней есть важные секундомеры, и они будут сброшены при перенаправлении.

2. Вероятно, стоит подумать о вызове Ajax для mail.php скрипт, это остановит загрузку страницы, но запустите скрипт.

3. Привет, gmadd, не могли бы вы опубликовать пример этого, пожалуйста? У меня еще не было возможности изучить AJAX более подробно, поэтому я не знаю, как его использовать. Спасибо

4. @user683526 Я обновил свой ответ некоторым непроверенным Ajax-кодом.