Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не могу разобраться с функцией mail()
Форумы портала PHP.SU » » Работа с сетью » Не могу разобраться с функцией mail()

Страниц (1): [1]
 

1. pro_xaoc - 03 Августа, 2011 - 23:46:22 - перейти к сообщению
Люди, помогите разобраться с функцией mail(). Ну никак не получается, делаю так: mail('mymail@mail.ru','test','text'); Но на почту мне ниче не приходит. В чем может быть проблема?
Заранее спасибо!
2. Razo21 - 04 Августа, 2011 - 00:05:17 - перейти к сообщению
pro_xaoc пишет:
Люди, помогите разобраться с функцией mail(). Ну никак не получается, делаю так: mail('mymail@mail.ru','test','text'); Но на почту мне ниче не приходит. В чем может быть проблема?
Заранее спасибо!

PHP:
скопировать код в буфер обмена
  1. $email=$_POST['email']//тот кто вам отправил
  2. $message="hello world";//message
  3. $komu="mail@mail.ru";//ваш майл на котором будет выслон
  4. $zagalovok="new message";//заголовок
  5. $mail=mail($komu,$zagalovok,$message,"content-type:text/playn;charset=utf-8\r\nFrom:$email");
  6. if($mail==true){
  7. echo "Успешно отправлен";}else{
  8. echo "не получилось отправить";}
  9.  
Подмигивание
3. Arni - 04 Августа, 2011 - 00:20:20 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. /**
  5.  * VISIONS CMS mail helper.
  6.  * @package             VISIONS CMS
  7.  * @version             v.1.0
  8.  * @subpackage          Helpers
  9.  * @author              Alexander Urchenko (dobs) <a.urchenko@webvisions.com.ua>
  10.  * @copyright           Copyright (c) 2008 - 2011, Web Visions
  11.  * @license             http://visionscms.com/license.html
  12.  * @link                http://visionscms.com/
  13.  */
  14. class SendMail {
  15.  
  16.     private $headers = "MIME-Version: 1.0\r\n";
  17.     private $to, $params, $subject, $mess, $from, $attach;
  18.  
  19.     function __construct() {
  20.         //$this->params = $params;
  21.     }
  22.  
  23.     /**
  24.      * Set recipient
  25.      * @param string $to
  26.      */
  27.     function setTo($to) {
  28.         $this->to = $to;
  29.     }
  30.  
  31.     /**
  32.      * Set mail for answer
  33.      * @param string $to
  34.      */
  35.     function setReply($to) {
  36.         $this->headers = $this->headers . 'Reply-To: ' . $to . PHP_EOL;
  37.     }
  38.  
  39.     /**
  40.      * Set subject of mail
  41.      * @param string $subject
  42.      */
  43.     function setSubj($subject) {
  44.         $this->subject = $subject;
  45.     }
  46.  
  47.     /**
  48.      * Set message
  49.      * @param string $mess
  50.      */
  51.     function setMess($mess) {
  52.         $this->mess = $mess;
  53.     }
  54.  
  55.     /**
  56.      * Set name and mail from who message been sent
  57.      * @param string $name
  58.      * @param string $mail
  59.      */
  60.     function setFrom($name='', $mail='') {
  61.         $this->from = 'From: ' . ($name ? $name : $this->params['site_sender']) .
  62.                 '<' . ($mail ? $mail : $this->params['site_mail']) . '>' . PHP_EOL;
  63.     }
  64.  
  65.     /**
  66.      * Add attach file
  67.      * @param string $name
  68.      * @param binary $source
  69.      */
  70.     function addAttach($name, $source) {
  71.         $this->attach .=
  72.                 '------fiugKbl8-m2WxH5pVxYzJ7dsc:1302108435' . PHP_EOL .
  73.                 'Content-Type: application/octet-stream; name="' . $name . '"' . PHP_EOL .
  74.                 'Content-Disposition: attachment' . PHP_EOL .
  75.                 'Content-Transfer-Encoding: base64' . PHP_EOL . PHP_EOL .
  76.                 chunk_split(base64_encode($source)) . PHP_EOL;
  77.     }
  78.  
  79.     /**
  80.      * Send message
  81.      * @param bool $admin_info - show admin details
  82.      */
  83.     function sendMess($admin_info='0') {
  84.         if (!$this->from) {
  85.             $this->setFrom();
  86.         }
  87.         $headers  = 'Content-type: multipart/mixed; boundary="----fiugKbl8-m2WxH5pVxYzJ7dsc:1302108435"' . PHP_EOL;
  88.         $headers .= 'Software: http://visionscms.com/' . PHP_EOL;
  89.         $headers .= $this->from;
  90.         $headers .= $this->headers;
  91.         $headers .= 'X-Mailer: PHP/' . phpversion();
  92.  
  93.  
  94.         if ($admin_info) {
  95.             $adm = "\r\n\n\n\n------\n" .
  96.                     '<b>&#1044;&#1072;&#1090;&#1072;:</b> ' . date('Y-m-d H:i:s') . PHP_EOL .
  97.                     '<b>Site:</b> http://' . $_SERVER['SERVER_NAME'] . PHP_EOL .
  98.                     '<b>URL:</b> http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . PHP_EOL .
  99.                     '<b>&#1041;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;:</b> ' . $_SERVER['HTTP_USER_AGENT'] . PHP_EOL .
  100.                     '<b>IP:</b> ' . $_SERVER['REMOTE_ADDR'];
  101.             $this->mess = $this->mess . nl2br($adm);
  102.         }
  103.  
  104.         $mess = '------fiugKbl8-m2WxH5pVxYzJ7dsc:1302108435' . PHP_EOL .
  105.                 'Content-Type: text/html; charset=utf-8' . PHP_EOL .
  106.                 'Content-Transfer-Encoding: base64' . PHP_EOL . PHP_EOL .
  107.                 chunk_split(base64_encode($this->mess)) . PHP_EOL . PHP_EOL .
  108.                 $this->attach .
  109.                 '------fiugKbl8-m2WxH5pVxYzJ7dsc:1302108435--';
  110.  
  111.         // Mail it
  112.         mail($this->to, $this->subject, $mess, $headers);
  113.     }
  114.  
  115.     function validateMail($mail) {
  116.         return filter_var($mail, FILTER_VALIDATE_EMAIL) ? 1 : 0;
  117.     }
  118.  
  119. }
  120.  


Пример использования.

PHP:
скопировать код в буфер обмена
  1.  
  2. $mail = new SendMail();    
  3.     $mail->setTo('to@mail.com');
  4.     $mail->setFrom('бла бла бла','mail@mail.com');
  5.     $mail->setMess($msg);
  6.     $mail->setSubj("Тема сообщения");
  7.     $mail->sendMess();
  8.  


Класс умеет отправлять и файлы тоже. И не мучайтесь.
4. pro_xaoc - 04 Августа, 2011 - 10:53:08 - перейти к сообщению
спасибо, оба кода работают, но только на хостинге (да и мой тоже), оказывается надо еще настроить почтовую программу, я вот установил из репозитариев sendmail, но настроить никак не могу ... Не подскажете мне, есть ли какие нибудь более простые почтовики (только на отправку писем) или если кто знает, как настроить sendmail?
5. Arni - 04 Августа, 2011 - 10:59:32 - перейти к сообщению
pro_xaoc пишет:
спасибо, оба кода работают, но только на хостинге (да и мой тоже), оказывается надо еще настроить почтовую программу, я вот установил из репозитариев sendmail, но настроить никак не могу ... Не подскажете мне, есть ли какие нибудь более простые почтовики (только на отправку писем) или если кто знает, как настроить sendmail?


В большинстве *nix подобных ос отправка почты идет с коробки, за сисключением авторезированной отправки почты. Если у вас денвер, или любое другое жалкое подобие веб сервера, то там вероятнее всего стоит заглушка отправки почты. И настроить все это не так просто, и в рамках форума вам объяснить все это врятли у кого-то возникнет желание
6. pro_xaoc - 04 Августа, 2011 - 11:02:12 - перейти к сообщению
Arni
у меня Ubuntu, т.е. в нем уже должно быть прога для отправки писем? Как называется?

 

Powered by ExBB FM 1.0 RC1