|
|
|
| Доброе утро, я не совсем понимаю, как происходит отправка..
Вот нашел готовое решение
// _____________________________________________________________________________
<? function sd_email_get_data($_smtp_conn)// отправка данных по smtp протоколу
{ $r='';
while($str=fgets($_smtp_conn,515))
{ $r.=$str;
if(substr($str,3,1)==' ') { break; }
}
return $r;
}
// _____________________________________________________________________________
function sd_email_command($_handle,$_command)
{ fputs($_handle,$_command."\n");
$r='<strong>'.$_command.'</strong> - '.nl2br(sd_email_get_data($_handle));
return $r;
}
// _____________________________________________________________________________
function sd_email($_mail,$_title='Вам письмо',$_text='Текст не указан')// отправка письма
// _email - кому
// _title - заголовок письма
// _text - текст письма
{ if ($_mail!='')// если email указан, то отправляем письмо
{ $config=project_config();// загрузка настроек проекта
/*
$smtp_server="smtp.mail.ru";
$port=25;
$mydomain="myserver.com";
$username="user";
$password="password";
$sender="me@myserver.com";
$recipient="joe@company.com";
$subject="test";
$content="test";
*/
// Initiate connection with the SMTP server
$h=fsockopen($config['email_server_smtp'],$config['email_server_smtp_port']);// соединяемся с SMTP сервером
// $data=sd_email_get_data($h);
$s='';
$s.=sd_email_command($h,'HELO '.$config['email_server_smtp']);
$s.=sd_email_command($h,'AUTH LOGIN');
$s.=sd_email_command($h,base64_encode($config['email_login']));
$s.=sd_email_command($h,base64_encode($config['email_password']));
$s.=sd_email_command($h,'MAIL FROM:<'.$config['email_login'].'>');
$s.=sd_email_command($h,'RCPT TO:<'.$_mail.'>');
$s.=sd_email_command($h,'DATA');
$head='';
$head.='Date: '.date("D, j M Y G:i:s").' +0700'."\n";
$head.='From:'.$config['email_login']."\n";
$head.='To: '.$_mail."\n";
$head.='Content-type: text/plain; charset="utf-8"'."\n";// поддержка кодировки UTF8
$head.='X-Mailer: SD PHP'."\n";
$head.='Subject: '.$_title."\n\n";
$head.=$_text."\n.\n";
$s.=sd_email_command($h,$head);
$s.=sd_email_command($h,'QUIT');
// sd_db_event(ev_log,0,'Отправлено письмо по адресу: '.$_mail.'. Заголовок: '.$_title);
}
return $s;
}
|
Какой принцип отправки? Я зарегистрировал себе домен, и хостнг, ни каких почтовых сервисов не подключал, могу ли я без них отправлять письма кому либо? и я с помощью этого кода, как бы авторизуюсь а потом только отправляю да? | |
|
|
|
|
|
|
|
для: Ванек2010
(23.05.2010 в 09:02)
| | Народ помогите, дело то срочное..
Что куда надо вводить нихира не пойму | |
|
|
|
|
|
|
|
для: Ванек2010
(23.05.2010 в 09:02)
| | (грустно так...)
Протокол передачи сообщений SMTP - RFC-5321 (Перевод RFC-5321).
Формат самого e-mail сообщения - - - - RFC-5322 (Перевод RFC-5322). | |
|
|
|
|
|
|
|
для: Trianon
(23.05.2010 в 10:58)
| | 25 листов еще и на англ, вы зверь | |
|
|
|
|
|
|
|
для: Ванек2010
(23.05.2010 в 11:28)
| | Я - зверь. Еще и на англ.
Там слово перевод подчеркнуто. Видите?
Окей. Я - зверь. А Вы - кто?
Крайне желательно тоже чтоб одним словом.
"Я тут рецепт нашел... и духовка, как ни странно, имеется... Научите меня яблочный штрудель печь. " | |
|
|
|
|
|
|
|
для: Trianon
(23.05.2010 в 11:31)
| | Я - зверь.
:) | |
|
|
|
|
|
|
|
для: Trianon
(23.05.2010 в 11:31)
| | Я делал по этой статьи http://habrahabr.ru/blogs/php/26518/
Скачал программку sandmail, настроил под свою почту на mail.ru, в натройках php.ini сделал как там написано, отправляю письмо
01 <html xmlns="http://www.w3.org/1999/xhtml">
02 <head>
03 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
04 <title>Simple Mail</title>
05 </head>
06 <body>
07
08 <?php $addr = $_POST['addr'];
09 $theme = $_POST['theme'];
10 $text = $_POST['text'];
11 if (isset($addr) && isset($theme) && isset($text)
12 && $addr != "" && $theme != "" && $text != "") {
13 if (mail($addr, $theme, $text, "From: <a href="mailto:vova_33@mail.ru">vova_33@mail.ru</a>")) {
14 echo "<h3>Сообщение отправлено</h3>";
15 }
16 else {
17 echo "<h3>При отправке сообщения возникла ошибка</h3>";
18 }
19 }
20 ?>
21 <form action="mailer.php" method="post">
22 <p>
23 <label for="addr">eMail:</label>
24 <input type="text" name="addr" id="addr" size="30" />
25 </p>
26 <p>
27 <label for="theme">Тема письма:</label>
28 <input type="text" name="theme" id="theme" size="30" />
29 </p>
30 <p>
31 <label for="text">Текст письма:</label>
32 <textarea rows="10" cols="20" name="text" id="text"></textarea>
33 </p>
34 <p>
35 <input type="submit" value="Отправить" />
36 </p>
37 </form>
38 </body>
39 </html>
|
Пишет Успешно отправленно, но не чего не приходит на 3 почты пробывал, в чем ошибка? | |
|
|
|
|
|
|
|
для: Ванек2010
(23.05.2010 в 15:50)
| | Ппробуйте так. Может не зря старался... | |
|
|
|
|
|
|
|
для: Николай2357
(23.05.2010 в 16:22)
| | Я прочел, скажите, верно еслия сделаю только так
<?php
if(substr(PHP_OS, 0, 3) == "WIN")
$n = "\r\n";
else
$n = "\n";
$to = 'email@mail.ru';
$from = 'email@yandex.ru';
$subject = 'Табе пакет';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = 'Content-type: text/plain; charset="utf-8"'. $n;
$headers .= 'From: <'. $from .'>'. $n;
$headers .= 'MIME-Version: 1.0'. $n;
$headers .= 'Date: '. date('D, d M Y h:i:s O') . $n;
$message = 'Вот такое вот письмо';
mail($to, $subject, $message, $headers);
mail($to, $subject, $message, $headers, '-f'. $from );
|
И все? | |
|
|
|
|
|
|
|
для: Ванек2010
(23.05.2010 в 20:57)
| | >Я прочел, скажите, верно еслия сделаю только так
уже нет. У вас в функия mail уже на 5 параметров пошла:
mail($to, $subject, $message, $headers, '-f'. $from );
|
а мануал гласит 3 обязателных и четрвертый(заголовки) по вашему желанию(тоже обязатльны)\ | |
|
|
|
|
|
|
|
для: tvv123456
(23.05.2010 в 23:14)
| | >нет. У вас в функия mail уже на 5 параметров пошла
Это не так, -femail для того, чтобы не подменялся адрес отправителя, хотя зачастую об этом хостера просить приходится. | |
|
|
|
|
|
|
|
для: sim5
(24.05.2010 в 03:41)
| | Блин ну в чем проблема? Сделал все как написано, сообщение не приходит.. | |
|
|
|
|
|
|
|
для: Ванек2010
(24.05.2010 в 12:08)
| | Ну, если судить не коду, то не все как нужно - зачем дважды вызов функции mail? Хотя это не ошибка, это лишнее.
Не проходит с чего? В чем вы проверяете отправку писем? | |
|
|
|
|
|
|
|
для: sim5
(24.05.2010 в 12:20)
| | Да то лишнее убрал, оно и не мешало.
Что значит в чем? Пришло письмо на почту или не пришло вот и проверка)
Ав коде, если $mail = true то отправлено правльно | |
|
|
|
|
|
|
|
для: Ванек2010
(24.05.2010 в 12:41)
| | $mail = true, это еще не значит гарантия.
А то и значит - вы проверяте свой скрипт на реальном сервере или на локальном компьютере? Если последнее, то ваш локальный сервер, это Денвер?
Если Денвер, то его Sendmail по умолчанию работает как заглушка, не отправляя реально почту, а складывая почтовые отправления в папку tmp\!sendmail сервера. В этой папке вы можете и обнаружить свои отправления как файлы с расширением .eml, просмотреть их, включая тело сообщения, на наличие ошибок, и отправить их по назначению. | |
|
|
|
|
|
|
|
для: sim5
(24.05.2010 в 12:48)
| | Делаю на реальном сервер.
Я делал по этой статье http://habrahabr.ru/blogs/php/26518/
Там написано, необходимо поставить прогу sendmail для отправки не по локалу.
Я настроил ее как надо, но не отправляет.. | |
|
|
|
|
|
|
|
для: Ванек2010
(24.05.2010 в 12:56)
| | У вас что свой выделенный сервер? | |
|
|
|
|
|
|
|
для: sim5
(24.05.2010 в 12:58)
| | Да выделеный сервер VDS, 1000 р в месяц | |
|
|
|
|
|
|
|
для: Ванек2010
(24.05.2010 в 13:00)
| | если у Вас свой сервер (и очевидно свой домен) зачем Вам mail.ru?
И если совершенно очевидно, что домен Ваш - не yandex.ru, то почему Вы пытаетесь заставить Ваш сервер отправлять почту от имени яндекса, а не от своего собственного?
И что говорит сисадмин сервера? | |
|
|
|
|
|
|
|
для: Trianon
(24.05.2010 в 13:12)
| | Да домен тоже платный, я просто не пойму что надо делать, этот VDS сервер под online игру, ну я туда и сайт сразу запер, мне предоставили https://cp.justhost.in.ua/manager/ панель свою там.. но я если честно не разобрался. Пошел юзать форумы, прочел что нужен почтовый сервер, есть платные есть бесплатные, я конечно платить по 150 р за почту в месяц не хочу, поэтому выбрал на mail.ru, как сделать чтобы почта@мой_домен.ru было бесплатно я незнаю..
Ванек (09:04:58 23/05/2010)
Доброе утро, не подскажите, что нужно, для того, чтобы мои пользователи при регистрации получали письма, от моей почты? Нужно какой-то почтовой сервис добавлять?
Ванек (09:05:07 23/05/2010)
помимо самого кода на странице
Host (09:52:39 23/05/2010)
Конечно, нужно почтовый сервер ставить
Ванек (09:52:58 23/05/2010)
мм, а где я его могу взять?
Host (09:53:09 23/05/2010)
в интернете
Ванек (09:53:30 23/05/2010)
а это что https://cp.justhost.in.ua/manager/ispmgr
Ванек (09:53:34 23/05/2010)
это не то?
Host (09:54:03 23/05/2010)
сайт установлен на вашем VDS?
Ванек (09:54:10 23/05/2010)
Да
Host (09:54:32 23/05/2010)
Тогда никакого отношения к ISPmanager панели не имеет
Host (09:54:54 23/05/2010)
если только у вас сайт может использовать smtp сервер
Host (09:55:15 23/05/2010)
если нет - то только ставить почтовый сервер и с помощью sendmail отправлять
Ванек (09:55:38 23/05/2010)
ладно попробую сделать второе
Host (09:56:04 23/05/2010)
проверьте сначало, у вас в настройках сайта речь нигде не идёт про smtp?
Ванек (09:56:48 23/05/2010)
в config.php или где
Host (09:57:22 23/05/2010)
без понятия
|
| |
|
|
|
|
|
|
|
для: Ванек2010
(23.05.2010 в 20:57)
| | Не всегда этого достаточно. Допустим адрес "от кого" лучше делать составным
<?
$headers .= 'From: '. $from .' <'. $from .'>'. $n;
|
И желательно кодировать само тело письма. | |
|
|
|
|
|
|
|
для: Trianon
(23.05.2010 в 10:58)
| | Хороший способ учить технический английский, имея и исходник и хороший перевод (переводчик то понятное дело ахинею выдавать будет :) ) | |
|
|
|