0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 1453 Просмотров
*

20dollars

  • Давно я тут
  • 236
  • 4 / 2
Кодировка email
« : 14.10.2013, 15:10:38 »
использую вот такое решение обратной связи для Быстрого заказа:
это в код страницы html:
Код
<script src="/components/com_jshopping/js/contactform.js" type="text/javascript"></script>
<a href="#contactForm"><input type="button" value="Быстрый заказ">
<form id="contactForm" action="/processForm.php" method="post">
  <span>Быстрый заказ</span>
  <ul>
    <li>
      <label for="senderName">Имя</label>
      <input type="text" name="senderName" id="senderName" placeholder="Введите ваше имя" required="required" maxlength="40" />
    </li>
    <li>
      <label for="senderName">Телефон</label>
      <input type="text" name="senderPhone" id="senderPhone" placeholder="Введите контактный телефон" required="required" maxlength="40" />
    </li>    <li>
      <label for="senderEmail">E-mail</label>
      <input type="email" name="senderEmail" id="senderEmail" placeholder="Введите ваш e-mail адрес" required="required" maxlength="50" />
    </li>
    <li>
      <label for="message" style="padding-top: .5em;">Комментарий</label>
      <textarea name="message" id="message" placeholder="Ваш комментарий к заявке" required="required" cols="80" rows="10" maxlength="10000"></textarea>
    </li>
  </ul>
   <input name="url" style="display:none" required="required" value="<?php echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];?>"/>
   <input name="urlName" style="display:none" required="required" value="<?php print $this->product->name?>"/>
  <div id="formButtons">
    <input type="submit" id="sendMessage" name="sendMessage" value="Отправить" />
    <input type="button" id="cancel" name="cancel" value="Отмена" />
  </div>
</form>
<div id="sendingMessage" class="statusMessage"><p>Выполняется отправка. Пожалуйста подождите...</p></div>
<div id="successMessage" class="statusMessage"><p>Спасибо за заявку! Мы свяжемся с Вами, в ближайшее время</p></div>
<div id="failureMessage" class="statusMessage"><p>Возникли неполадки. Попробуйте снова.</p></div>
<div id="incompleteMessage" class="statusMessage"><p>Пожалуйста, заполните все поля формы перед отправкой.</p></div>
<div id="window"></div>
это файл contactform.js
Код
var messageDelay = 2000;
jQuery( init );

function init() {
jQuery('#contactForm').hide().submit( submitForm ).addClass( 'positioned' );
jQuery('a[href="#contactForm"]').click( function() {
jQuery('#window').fadeTo( 'slow', .8 );
jQuery('#contactForm').fadeIn( 'slow', function() {
jQuery('#senderName').focus();
} )
return false;
} );
jQuery('#cancel').click( function() {
jQuery('#contactForm').fadeOut();
jQuery('#window').fadeOut();
} );
jQuery('#contactForm').keydown( function( event ) {
if ( event.which == 27 ) {
jQuery('#contactForm').fadeOut();
jQuery('#window').fadeOut();
}
} );
}

function submitForm() {
var contactForm = jQuery(this);
if ( !jQuery('#senderName').val() || !jQuery('#senderEmail').val() || !jQuery('#message').val() ) {
jQuery('#incompleteMessage').fadeIn().delay(messageDelay).fadeOut();
contactForm.fadeOut().delay(messageDelay).fadeIn();
} else {
jQuery('#sendingMessage').fadeIn();
contactForm.fadeOut();
jQuery.ajax( {
url: contactForm.attr( 'action' ) + "?ajax=true",
type: contactForm.attr( 'method' ),
data: contactForm.serialize(),
success: submitFinished
} );
}
return false;
}

function submitFinished( response ) {
response = jQuery.trim( response );
jQuery('#sendingMessage').fadeOut();
if ( response == "success" ) {
jQuery('#successMessage').fadeIn().delay(messageDelay).fadeOut();
jQuery('#senderName').val( "" );
jQuery('#senderEmail').val( "" );
jQuery('#message').val( "" );
jQuery('#window').delay(messageDelay+510).fadeOut();
} else {
jQuery('#failureMessage').fadeIn().delay(messageDelay).fadeOut();
jQuery('#contactForm').delay(messageDelay+500).fadeIn();
jQuery('#window').delay(messageDelay+510).fadeOut();
}
}
и processForm.php
Код
<?php
// Определение констант
define( "RECIPIENT_NAME", "citename" ); //Кому адресовано письмо
define( "RECIPIENT_EMAIL", "mail@gmail.com" ); //Куда отправить письмо
define( "EMAIL_SUBJECT", "Быстрый заказ" ); //Тема письма

// Считывание данных из формы
$success = false;
$senderName = $_POST['senderName'];
$senderPhone = $_POST['senderPhone'];
$senderEmail = isset( $_POST['senderEmail'] )? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail'] ) : "";
$message = isset( $_POST['message'] )? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";
$url = $_POST['url'];
$urlName = $_POST['urlName'];

// Проверка заполнения полей
if ( $senderName && $senderEmail && $senderPhone ) {
  $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
  $headers = "From: " . $senderName . " <" . $senderEmail . ">";
  $subject = EMAIL_SUBJECT;
   $message = "
На странице: $url

Задали вопрос по $urlName

Спрашивает: $senderName

E mail: $senderEmail

Контактный телефон: $senderPhone

Вопрос: $message";

  $success = mail( $recipient, $subject, $message, $headers );
}

// Возвращение ответа в браузер
if ( isset($_GET["ajax"]) ) {
  echo $success ? "success" : "error";
} else {
?>
<html>
  <head>
    <title>Thanks!</title>
  </head>
  <body>
  <?php if ( $success ) echo "<p>Thanks for sending your message! We'll get back to you shortly.</p>" ?>
  <?php if ( !$success ) echo "<p>There was a problem sending your message. Please try again.</p>" ?>
  <p>Click your browser's Back button to return to the page.</p>
  </body>
</html>
<?php
}
?>
Письмо приходит такого вида:
Спойлер
[свернуть]
Как отсылать его в правильной кодировке?
*

SANR

  • Захожу иногда
  • 23
  • 7 / 0
Re: Кодировка email
« Ответ #1 : 14.10.2013, 21:09:51 »
Какая кодировка на сервере?
В какой кодировке текста? Какая кодировка страницы на которой размещен форма?
Какая кодировка в служебном заголовке письма?
В какой кодировке файл processForm.php?
Если processForm.php не utf-8 (Без BOM) преобразуйте в utf-8 (Без BOM) и сохраните.
Также добавите кодировку в processForm.php  в заголовок письма.
Как куда что писать Google php mail $headers посмотрите примеры разберетесь.
*

20dollars

  • Давно я тут
  • 236
  • 4 / 2
Re: Кодировка email
« Ответ #2 : 15.10.2013, 00:24:57 »
кодировка сервера utf-8, все файлы пересохранял как utf-8 (Без BOM)
а оно все равно черти как приходит.
*

SANR

  • Захожу иногда
  • 23
  • 7 / 0
Re: Кодировка email
« Ответ #3 : 15.10.2013, 02:31:06 »
Народ научитесь пользоваться поиском....
Уже ключи пишешь и все равно. В гугал не ногой...
Google
php mail $headers
Второй сайт
В самом конце смотри пример Отправка сложной email.
*

dokado64

  • Новичок
  • 1
  • 0 / 0
Re: Кодировка email
« Ответ #4 : 20.05.2014, 22:09:47 »
использую вот такое решение обратной связи для Быстрого заказа:


большое спасибо за код...

Мне надо было в Cronoforms форме чтобы отправлялось на почту страница с которой заполненна форма,

(обыскал весь интернет нигде нет, тут чисто случайно нашел, полюбому комуто поможет!)
Сделал так:


В хроноформс создал скрытое поле - hidden box

в валуе запихал - <?php echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];?>

и в обработчик который отсылает на почту обновил..и все ...сроботало...


сейчас добалю статью в свой блог - докадо точка ру..кому надо там много интересного с чем я столкнулся
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться