Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.08.2010, 22:17
German вне форума Посмотреть профиль Отправить личное сообщение для German Найти все сообщения от German
  № 11  
Ответить с цитированием
German
 
Аватар для German

Регистрация: Mar 2010
Адрес: Спб
Сообщений: 169
Спасибо Vikky, три дня назад искал днем с огнем, в итоге написал, доработал из того что тут нашел. Неприменно Ваш вариант попробую.

Старый 13.08.2010, 03:01
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 12  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
PHP код:
<?
if(!empty($_POST['sender_mail'])
    || !empty(
$_POST['sender_message'])
    || !empty(
$_POST['sender_subject'])
    || !empty(
$_POST['sender_name']))
{
    
$to "admin@in4core.com"// replace with your mail address
    
$s_name $_POST['sender_name'];
    
$s_mail $_POST['sender_mail'];
    
$subject stripslashes($_POST['sender_subject']);
    
$body stripslashes($_POST['sender_message']);
    
$body .= "\n\n---------------------------\n";
    
$body .= "Mail sent by: $s_name <$s_mail>\n";
    
$header "From: $s_name <$s_mail>\n";
    
$header .= "Reply-To: $s_name <$s_mail>\n";
    
$header .= "X-Mailer: PHP/" phpversion() . "\n";
    
$header .= "X-Priority: 1";
    if(@
mail($to$subject$body$header))
    {
        echo 
'Письмо успешно отправлено';
    } else {
        echo 
'Отправка прервана, ошибка 344';
    }
} else {
    echo 
'Отправка прервана, ошибка 344';
}
?>
Добавлено через 31 секунду
пока лучше небыло ( + антиспам)

Старый 12.12.2010, 19:30
feodus вне форума Посмотреть профиль Отправить личное сообщение для feodus Посетить домашнюю страницу feodus Найти все сообщения от feodus
  № 13  
Ответить с цитированием
feodus
 
Аватар для feodus

Регистрация: Feb 2001
Адрес: Казань
Сообщений: 63
Отправить сообщение для feodus с помощью Skype™
Подскажите кто в курсе!
Пытаюсь настроить отправку мыла из Flash формы с локальной машины на Gmail адрес.
-Стоит XAMPP.
-Запущен только Апач.

Вот конфиги и исходники:

конфигурационный файл sendmail

Код:
[sendmail]

; здесь укажите сервер исходящей почты
smtp_server=smtp.gmail.com


; порт smtp, если обычный режим отправки, то порт будет 25
; если сервер работает в защищенном режиме (TLS), то порт 465, например почта гугла работает через 465 порт

smtp_port=465

; домен по умолчанию (совсем не обязательно) 

;default_domain=local

; лог ошибок

error_logfile=error.log

; лог отправки, необходим на стадии тестирования. содержит весь текст переговоров с сервером при отправке.

debug_logfile=debug.log

; Если smtp сервер с авторизацией, укажите логин пароль(без кавычек), если без авторизации ничего не пишите

auth_username=xyz@gmail.com 
auth_password=xxxxxxxxx

; если перед отправкой почты сервер требует авторизацию через POP, заполните эти поля

;pop3_server=
;pop3_username=
;pop3_password=

; email адрес, от которого идет отправка, вставится в заголовок "From: "
; если отправка писем идет через mail.ru, здесь обязательно должен быть адрес, через который произведена авторизация. 

;force_sender=xyz@gmail.com

; хост, который указывается при авторизации в команде ehlo/helo
; указывайте домен, через который авторизуетесь 

hostname=gmail.com
PHP файл, отвечающий за отправку мыла:

PHP код:
<?php
//$headers .= "Content-type: text/plain; charset=UTF-8\r\n"; 
$headers .= 'MIME-Version: 1.0' "\r\n" 'Content-type: text/html; charset=UTF-8' "\r\n";
$be_var $_POST;
foreach ( 
$be_var as $key => $value ) {
$
$key trim(strip_tags($value));
}
$be_var $_GET;
foreach ( 
$be_var as $key => $value ) {
$
$key trim(strip_tags($value));
}
    
// адрес куда отсылать сообщение
    
$to "xyz@gmail.com";

    
// тема сообщениея
    
$subject "тема бла-бла-бла";
    
$subject '=?UTF-8?B?'.base64_encode($subject).'?=';

    
// формируем сообщение
    
$message .= "<b>Имя отправителя</b>: " $userName;
    
$message .= "<br><br><b><i>КОНТАКТНЫЕ ДАННЫЕ</b></i><br><b>E-mail отправителя</b>: " $userEmail;
    
$message .= "<br><br><i><b>СООБЩЕНИЕ</i></b>:<br> " $userMessage;

    
// формируем заголовок
    
$headers .= "From: $userEmail";

    
// посылаем почту
    
$isSentOK mail($to$subject$message$headers);
    
    
// предаем пременную $isSentOK, которую считываем во Флеше
    
echo "isSentOK="  .  $isSentOK;
?>
Часть php.ini, отвечающая за SMTP

Код:
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25
sendmail_path = "\xampp\sendmail\sendmail.exe -t"

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = "\"I:\server\xampplite\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log = "I:\server\xampplite\apache\logs\php_mail.log"
AS код флешки:

Код AS1/AS2:
stop();
 
var oSubmitListener:Object = new Object();
var lvSenderLoad:LoadVars = new LoadVars();
var lvReceiveLoad:LoadVars = new LoadVars();
 
btnSend.addEventListener("click", oSubmitListener);
 
oSubmitListener.click = function(evt:Object):Void
{
	lvSenderLoad.userName = ctiName.text;
	lvSenderLoad.userEmail = ctiEmail.text;
	lvSenderLoad.userMessage = ctaMessage.text;
	lvSenderLoad.sendAndLoad("http://localhost/mail/send_mail.php", lvReceiveLoad);
	trace("посылаем " + ctaMessage.text);
};
 
lvReceiveLoad.onLoad = function(bSuccess:Boolean):Void
{
	if(bSuccess) {
		trace(this.isSentOK);
		this.isSentOK ? gotoAndStop("success") : gotoAndStop("failed");
	} else {
		trace("не удалось получить ответ от сервера");
	}
}

Пользовался этим тредом и этим тутором http://webi.ru/webi_articles/sendmail_ini.html

Флешка говори что все отправлено...но письмо не приходит...
Подскажите пожалуйста!

Старый 13.12.2010, 12:32
wmz38 вне форума Посмотреть профиль Отправить личное сообщение для wmz38 Найти все сообщения от wmz38
  № 14  
Ответить с цитированием
wmz38

Регистрация: Dec 2010
Сообщений: 11
Яндекс-почта например UTF-8 не видит, а флэш передает данные из формы в UTF-8 - вот код для конвертации из UTF-8 в Win-1251
PHP код:
<?php
//тут данные из переданной флэш формы в кодировке UTF-8
$name $HTTP_POST_VARS['Name'];
$phone $HTTP_POST_VARS['Phone'];
$email $HTTP_POST_VARS['Email'];
$message $HTTP_POST_VARS['Message'];


// Функция преобразования, чтоб на мыло не приходила абра кадабра для поля "name"
function Utf8ToWin($fcontents) {
    
$out $c1 '';
    
$byte2 false;
    for (
$c 0;$c strlen($fcontents);$c++) {
        
$i ord($fcontents[$c]);
        if (
$i <= 127) {
            
$out .= $fcontents[$c];
        }
        if (
$byte2) {
            
$new_c2 = ($c1 3) * 64 + ($i 63);
            
$new_c1 = ($c1 >> 2) & 5;
            
$new_i $new_c1 256 $new_c2;
            if (
$new_i == 1025) {
                
$out_i 168;
            } else {
                if (
$new_i == 1105) {
                    
$out_i 184;
                } else {
                    
$out_i $new_i 848;
                }
            }
            
$out .= chr($out_i);
            
$byte2 false;
        }
        if ((
$i >> 5) == 6) {
            
$c1 $i;
            
$byte2 true;
        }
    }
    return 
$out;
}

//задаем переменной, конвертированное вышеописанной функцией, значение.
$cname Utf8ToWin($name);

//еще одна функция аналогичная первой
function Utf8ToWin1($fcontents) {
    
$out $c1 '';
    
$byte2 false;
    for (
$c 0;$c strlen($fcontents);$c++) {
        
$i ord($fcontents[$c]);
        if (
$i <= 127) {
            
$out .= $fcontents[$c];
        }
        if (
$byte2) {
            
$new_c2 = ($c1 3) * 64 + ($i 63);
            
$new_c1 = ($c1 >> 2) & 5;
            
$new_i $new_c1 256 $new_c2;
            if (
$new_i == 1025) {
                
$out_i 168;
            } else {
                if (
$new_i == 1105) {
                    
$out_i 184;
                } else {
                    
$out_i $new_i 848;
                }
            }
            
$out .= chr($out_i);
            
$byte2 false;
        }
        if ((
$i >> 5) == 6) {
            
$c1 $i;
            
$byte2 true;
        }
    }
    return 
$out;
}
//тоже самое что и выше
$cmessage Utf8ToWin1($message);

//тут некие настройки почты, темы, даты и времени сообщения
$sendTo "ваша@почта.ру";
$subject "Тема сообщения";
$Sender_Time=date("H.i");
$Sender_Date=date("j.m.Y");

$headers  "MIME-Version: 1.0\r\n";
$headers .="Content-type: text/html; charset=windows-1251\r\n";

$msg_body "Ф.И.О.: <b>\t$cname\n</b><br>";
$msg_body .= "Телефон: <b>\t$phone\n</b><br>";
$msg_body .= "Email: <b>\t$email\n</b><br>";
$msg_body .= "Сообщение отправлено: <b>\t$Sender_Date\n</b> в <b>\t$Sender_Time\n</b><br>";
$msg_body .= "Текст заявки: <br><b>\t$cmessage\n</b><br>";


mail($sendTo$subject$msg_body$headers);

?>
Все работает, вчера намучился но сделал


Добавлено через 2 минуты
У меня вопрос - а кто может помоч написать проверку в АС на корректную вводимость email и phone?


Последний раз редактировалось wmz38; 13.12.2010 в 12:41.
Старый 13.12.2010, 15:10
feodus вне форума Посмотреть профиль Отправить личное сообщение для feodus Посетить домашнюю страницу feodus Найти все сообщения от feodus
  № 15  
Ответить с цитированием
feodus
 
Аватар для feodus

Регистрация: Feb 2001
Адрес: Казань
Сообщений: 63
Отправить сообщение для feodus с помощью Skype™
Я вчера тоже намучился и сделал в том варианте, который был.
Проблема была в неправильном указании пути к sendmail и сам sendmail обновил отсюда http://glob.com.au/sendmail/

Кстати с русским все в порядке... никаких переделок не нужно. По крайней мере в этом варианте.

И вопрос другой появился!
Мне нужно чтоб на присланное письмо, можно было ответить из Gmail, нажав на "Ответить"


Вот код отправки мыла:
PHP код:
<?php
//$headers .= "Content-type: text/plain; charset=UTF-8\r\n"; 
$headers .= 'MIME-Version: 1.0' "\r\n" 'Content-type: text/html; charset=UTF-8' "\r\n";
$be_var $_POST;
foreach ( 
$be_var as $key => $value ) {
$
$key trim(strip_tags($value));
}
$be_var $_GET;
foreach ( 
$be_var as $key => $value ) {
$
$key trim(strip_tags($value));
}
    
// адрес куда отсылать сообщение
    
$to "xyz@gmail.com";

    
// тема сообщениея
    
$subject "тема бла-бла-бла";
    
$subject '=?UTF-8?B?'.base64_encode($subject).'?=';

    
// формируем сообщение
    
$message .= "<b>Имя отправителя</b>: " $userName;
    
$message .= "<br><br><b><i>КОНТАКТНЫЕ ДАННЫЕ</b></i><br><b>E-mail отправителя</b>: " $userEmail;
    
$message .= "<br><br><i><b>СООБЩЕНИЕ</i></b>:<br> " $userMessage;

    
// формируем заголовок
    
$headers .= "From: $userEmail\r\n";
    
$headers .= "Reply-To: $userEmail\r\n";
    
$headers .= "Return-Path: $userEmail\r\n"

    
// посылаем почту
    
$isSentOK mail($to$subject$message$headers);
    
    
// предаем пременную $isSentOK, которую считываем во Флеше
    
echo "isSentOK="  .  $isSentOK;
?>
В пункте "//формируем заголовок" две последние строчки как бы должны указать куда отвечать, но при приходе письма в Gmail отвечать получается на адрес аккаунта через который произошла отправка, а не через указанный в "$headers .= "Reply-To: $userEmail\r\n";"

Вот что написано в подробных данных к письму:

Код:
от	xyz@gmail.com
ответить	useremail@gmail.com
кому	xyz@gmail.com
дата	13 декабря 2010 г. 13:47
тема	бла-бла-бла
отправлено через	gmail.com
Поясню - я пользуюсь одним аккаунтом для отправки и получения


Как побороть? А? Нужно чтоб ответ инициировался на $userEmail...

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.