#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-кодом.