Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > отправка сообщения на e-mail


Автор: Ya88 2.6.2011, 07:32
подскажите в чем проблема. код на flex для отправки почты на e-mail. обработка данных должна обрабатываться на php. Плиииииз очень надо. Где ошибка? я делаю так.
Код

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="left" verticalAlign="top" layout="absolute">
<mx:Style source="style.css" />    
<mx:Script>
    <![CDATA[
       import mx.rpc.events.ResultEvent;
       import mx.controls.Alert;
       public function aswerHandler( event: ResultEvent ):void
       {
                Alert.show(String(event.result));
       }
       //----------------------------------------      
       public function send_button_click():void
       {
         //------------------------
         if(to.text == "")
         {
            Alert.show("Не заполнено поле кому.");
            return;
         }
         //----------------------
         if(subj.text == "")
         {
            Alert.show("Не заполнено поле тема.");
            return;
         }
         //----------------------
         if(text.text == "")
         {
            Alert.show("Не заполнено поле текст.");
            return;
         }
         //----------------------
         var tmpobj:Object = new Object;
         tmpobj.to = to.text;
         tmpobj.subj = subj.text;
         tmpobj.text = text.text;
         sendform.send( tmpobj );
       }
       //----------------------------------------

    ]]>
</mx:Script>
    <mx:HTTPService id="sendform" url="http://localhost/amfphp/mysendmail/complete/sendmail.php" method="POST" resultFormat="text" result="aswerHandler(event)"/>
    <mx:Label text="Кому:"  color="#000000" fontFamily="Arial" fontWeight="bold" x="24" y="24"/>
    <mx:TextInput width="376"  id="to" x="54" y="22"/>
    <mx:Label text="Тема:" color="#000000" fontFamily="Arial" fontWeight="bold" x="24" y="50"/>
    <mx:TextInput width="376" id="subj" x="54" y="48"/>
    <mx:TextArea x="10" y="78" id="text" width="420" height="244" cornerRadius="17"/>
    <mx:Button x="24" y="333" label="Отправить" click="send_button_click()"/>
    <mx:LinkButton x="340" y="333" label="dotblog.ru" fontSize="11"/>
</mx:Application>



Код

<?
 $to = $_REQUEST['to'];
 $subj = $_REQUEST['subj'];
 $text = $_REQUEST['text'];

 $mail_sent = @mail($to, $subj, $text);
 if ($mail_sent)
 {
  print 'Письмо успешно отправлено';
 }
 else
 {
  print 'Отправка не удалась';
 }
?>

Автор: patap 2.6.2011, 12:25
убери @ перед mail(), что будет?

Автор: Ya88 2.6.2011, 12:45
выскакивает ошибка:

<br />
<b>Warning</b>:  mail() [<a href='function.mail'>function.mail</a>]: &quot;sendmail_from&quot; not set in php.ini or custom &quot;From:&quot; header missing in <b>C:\xampp\htdocs\amfphp\mysendmail\complete\sendmail.php</b> on line <b>6</b><br />
Отправка не удалась

Автор: capitan 2.6.2011, 13:00
в функцию mail нужно передавать 4 параметра. Последнего с заголовками у Вас нет.
http://www.php.net/manual/en/function.mail.php

Код

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

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


Или иногда, из-за настроек сервера нужно делать так:
Код

<?php
mail('nobody@example.com', 'the subject', 'the message', null,
   '-fwebmaster@example.com');
?>


Должно помочь.

Автор: Ya88 2.6.2011, 13:14
я новичок... я вставляю код но незнаю верно ли? вот как я делаю и он выводит такую ошибку. подскажи в чем дело призззззз
Код

<?
 $to = $_REQUEST['to'];
 $subj = $_REQUEST['subj'];
 $text = $_REQUEST['text'];
  $mail_sent = mail($to, $subj, $text, null,
   '-fwebmaster@example.com');
 if ($mail_sent)
 {
  print 'Письмо успешно отправлено';
 }
 else
 {
  print 'Отправка не удалась';
 }
?>


<br />
<b>Warning</b>:  mail() [<a href='function.mail'>function.mail</a>]: &quot;sendmail_from&quot; not set in php.ini or custom &quot;From:&quot; header missing in <b>C:\xampp\htdocs\amfphp\mysendmail\complete\sendmail.php</b> on line <b>6</b><br />

Добавлено через 19 секунд
может я че не так делаю?

Автор: patap 2.6.2011, 14:04
запара с отправкой почты в php.ini

судя по всему не указан обратный email (sendmail_from) в php.ini
пропиши его там. 

или как вариант, в начале скрипта добавь
Код

set_ini('sendmail_from', 'somebody@gmail.com');


Автор: Ya88 2.6.2011, 14:20
а Вы не подскажите где лежит php.ini. один нашел он лежит на С:\xammp\php. но мне кажеться это не тот. я попробовал он все равно выдает ту же ошибку

и прописав в php файле строчку
Код

set_ini('sendmail_from', 'somebody@gmail.com');


он выдает ошибку

<br /><b>Fatal error</b>:  Call to undefined function  set_ini() in <b>C:\xampp\htdocs\amfphp\mysendmail\complete\sendmail.php</b> on line <b>2</b><br />

Автор: capitan 2.6.2011, 15:02
Попробуйте так:
Код

mail($to, $subj, $text, "From: webmaster@example.com\r\n");

Автор: Ya88 3.6.2011, 08:38
Ваша поправка увы привела еще к одной ошибке(но чувствую, что имеет место быть, хоть какой-то прогресс):

<br />
<b>Warning</b>:  mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in <b>C:\xampp\htdocs\amfphp\mysendmail\complete\sendmail.php</b> on line <b>5</b><br />
Отправка не удалась

Подскажите, пожалуйста, как ее разрешить, как настроить SMTP...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)