форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / Создание сайта / Форма отправки мыла с альфамуна |
| . 1 . 2 . >> |
| Автор | Сообщение |
| Александр Леонидович 1124 |
# Дата: 25 Апр 2007 08:40 Выложите кто-то плз рабочий код формы отправки мыла с альфамуна. Ящик на мейл.ру. Если можно с комментариями, оч нужно. |
| Константин TorrentMaster 3515 |
# Дата: 25 Апр 2007 11:59 ° Поправил: Константин Моя функция отправки все еще работает. Как прикрутить GUI думаю догадаешься. Helostring - любая строка для mail.ru <?
//////////////////////////////////////////////////////
// DefSMTPsender v.0.6.6.7 (by Deflector) //
//This script can send mail using remote smtp server//
//////////////////////////////////////////////////////
function mailsmtpsend($server,$port,$helostring,$user,$password,$from,$to,$messa
ge)
{
$socket=fsockopen($server,$port,$errno,$errstr);
if ($errno>0) return false;
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
$buffer="";
fputs($socket,"HELO $helostring\n");
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"AUTH LOGIN\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,base64_encode($user)."\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,base64_encode($password)."\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"MAIL FROM: $from\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"RCPT TO: $to\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"DATA\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"$message\r\n.\r\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
echo($buffer."\n");
fputs($socket,"QUIT\n");
fclose($socket);
return true;
}
?>
message с вложениями делается так: $messagebody=''; $un = strtoupper(uniqid(time())); $messagebody .= "From: $accusername\n"; $messagebody .= "To: ".$to."\n"; $messagebody .= "Subject: [alfaspace]".basename($sourcename)." [part ".($mescnt+ $mesnump)."]\n"; $messagebody .= "Reply-To: $accusername\n"; $messagebody .= "Mime-Version: 1.0\n"; $messagebody .= "Content-Type:multipart/mixed; boundary=\"d----------".$un."\"\n \n"; $messagebody .= "--d----------".$un."\nContent-Type:text/plain;\n"; $messagebody .= "Content-Transfer-Encoding: 8bit\n\n$messagetext\n\n"; $messagebody .= "--d----------".$un."\n"; $messagebody .= "Content-Type: application/octet-stream; name=\"".basename($sfil ename.".part".($mescnt+$mesnump))."\"\n"; $messagebody .= "Content-Transfer-Encoding: base64\n"; $messagebody .= "Content-Disposition: attachment; filename=\"".basename($sfilena me.".part".($mescnt+$mesnump))."\"\n\n"; $attach = chunk_split(base64_encode($attachment)); unset($attachment); $messagebody .= $attach."\n"; unset($attach); $messagebody .= "--d----------".$un."--\n"; пример вызова: $rs=mailsmtpsend("smtp.list.ru",2525,"DefMailSystem",$accusername,$accpa |
| persei Участник 490 |
# Дата: 26 Апр 2007 06:09 у нас закрыт 25 порт... |
| Рамиль minibb moder 1152 |
# Дата: 26 Апр 2007 07:00 persei » persei у нас закрыт 25 порт...» Константин 2525 |
| Александр Леонидович 1124 |
# Дата: 26 Апр 2007 08:51 » Константин Моя функция отправки все еще работает.
Как прикрутить GUI думаю догадаешься. Константин я не кодер, и врядли иь уже буду Распиши плз что где прописать и простеишии гуи Извини что отвлекаю такими вопросами ![]() |
| Константин TorrentMaster 3515 |
# Дата: 26 Апр 2007 09:45 ° Поправил: Константин Александр Тогда лучше найди готовое решение. Но если хочешь, то простейший gui+еще кусок кода (собрал все вместе - пусть это будет sender.php):
<form action="sender.php" method="POST">
От кого: <input type=text name="fr"><br>
Кому: <input type=text name="to"><br>
Тема письма: <input type=text name="subj"><br>
Текст письма: <input type=text name="text"><br>
<input type=submit value="Послать">
</form>
<?
//////////////////////////////////////////////////////
// DefSMTPsender v.0.6.6.7 (by Deflector) //
//This script can send mail using remote smtp server//
//////////////////////////////////////////////////////
function mailsmtpsend($server,$port,$helostring,$user,$password,$from,$to,$mess
a
ge)
{
$socket=fsockopen($server,$port,$errno,$errstr);
if ($errno>0) return false;
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
$buffer="";
fputs($socket,"HELO $helostring\n");
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"AUTH LOGIN\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,base64_encode($user)."\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,base64_encode($password)."\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"MAIL FROM: $from\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"RCPT TO: $to\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"DATA\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
fputs($socket,"$message\r\n.\r\n");
echo("->");
$buffer="";
while (strpos($buffer,"\n")===false) $buffer.=fgets($socket,256);
echo($buffer."\n");
fputs($socket,"QUIT\n");
fclose($socket);
return true;
}
$accusername='something@mail.ru';
$accpassword='somepassword';
if (isset($_POST['to']))
$to=$_POST['to'];
else die('получатель не выбран');
if (isset($_POST['subj']))
$subj=$_POST['subj'];
else die('тема не указана');
if (isset($_POST['text']))
$text=$_POST['text'];
else die('тело письма отсутствует');
if (isset($_POST['fr']))
$fr=$_POST['fr'];
else die('вы не представились');
$messagebody='';
$un = strtoupper(uniqid(time()));
$messagebody .= "From: $accusername\n";
$messagebody .= "To: ".$to."\n";
$messagebody .= "Subject: $subj\n";
$messagebody .= "Reply-To: $accusername\n";
$messagebody .= "Mime-Version: 1.0\n";
$messagebody .= "Content-Type:multipart/mixed; boundary=\"d----------".$un."\"\
n
\n";
$messagebody .= "--d----------".$un."\nContent-Type:text/plain;\n";
$messagebody .= "Content-Transfer-Encoding: 8bit\n\na message from $fr\n$text\n Все. Отсылку аттачей я удалил. Если нужен русский язык - укажи Content-Transfer-Encoding: тот, какой нужен. |
| Александр Леонидович 1124 |
# Дата: 26 Апр 2007 12:00 спасибо ![]() |
| Александр Леонидович 1124 |
# Дата: 28 Апр 2007 08:06 Чтото не работает
Parse error: syntax error, unexpected T_STRING, expecting ')' in /home/............/sender.php on line 7
|
| Рамиль minibb moder 1152 |
# Дата: 28 Апр 2007 10:03 ° Поправил: Рамиль Александр переносы строк правильно соблюдал? на всякий пожарный, проверь что mailsmtpsend($server,$port,$helostring,$user,$password,$from,$to,$message) написан в одну строку |
| Александр Леонидович 1124 |
# Дата: 29 Апр 2007 02:12 ° Поправил: Александр Рамиль Спасибо, вроде поправил А как прописать только одно мыло получателя? Т.е, что бы небыло пункта "Кому", а было вбито только одно дефолтное? ![]() |
| Рамиль minibb moder 1152 |
# Дата: 29 Апр 2007 04:06 Александр чтобь всегда одинаковое было штоли? удали форму и в echo (mailsmtpsend()) вместо $to напиши "tvoy@email.ru" |
| Константин TorrentMaster 3515 |
# Дата: 29 Апр 2007 09:52 Или исправить форму так: Кому: <input type=text name="to" value="to@host.ru"><br> |
| Рамиль minibb moder 1152 |
# Дата: 29 Апр 2007 10:34 Константин <input type=hidden name="to" value="to@host.ru"> ![]() |
| Константин TorrentMaster 3515 |
# Дата: 29 Апр 2007 13:55 можно и так ![]() |
| Александр Леонидович 1124 |
# Дата: 29 Апр 2007 16:01 спасибо огромное - все ок![]() |
| Snake_ilim Участник 11 |
# Дата: 7 Май 2007 11:14 Здравтвуйте! Я все проделал - все работает, вот только после отправки сообщения ниже формы вылазиет такая вот штука: "->->->->->->->250 OK id=1Hl5iz-000PGl-00 1". Подскажите, как ее убрать? |
| Константин TorrentMaster 3515 |
# Дата: 7 Май 2007 11:44 Snake_ilim все echo закомментируй |
| Snake_ilim Участник 11 |
# Дата: 8 Май 2007 07:19 Константин а если не секрет, как это сделать??? ![]() |
| admin powered by admin 7218 |
# Дата: 8 Май 2007 07:39 » Snake_ilim Константин
а если не секрет, как это сделать??? я так подозреваю что коментируется в пхп таким макаром: ////////////////////////////////////////////////////// // DefSMTPsender v.0.6.6.7 (by Deflector) // //This script can send mail using remote smtp server// ////////////////////////////////////////////////////// |
| Serg Участник 1814 |
# Дата: 8 Май 2007 09:29 все echo 'фывафывафыва'; меняй на #echo 'фывафывафыва'; |
| Рамиль minibb moder 1152 |
# Дата: 8 Май 2007 10:07 Snake_ilim поменяй все echo на // echo |
| Snake_ilim Участник 11 |
# Дата: 8 Май 2007 10:18 ООООгромное спасибо! ![]() |
| Snake_ilim Участник 11 |
# Дата: 21 Май 2007 11:13 Здравствуйте! это снова я... А можно в этом скрипте сделать так что бы было еще одно поле обязательное для заполнения (от кого) и это поле после отправки вставлялось в тело письма??? |
| Snake_ilim Участник 11 |
# Дата: 21 Май 2007 11:21 Упс! Сорри!!! |
| Константин TorrentMaster 3515 |
# Дата: 21 Май 2007 12:36 Snake_ilim Можно. Сделай. Разрешаю
Только не пытайся заменить поле $messagebody .= "From: $accusername\n"; если там будет указано не то мыло, от имени которого отправляется письмо, то оно просто не отправится. |
| Snake_ilim Участник 11 |
# Дата: 22 Май 2007 12:10 Спасибо большое за разрешение осталось дело за малым... что-то где-то добавить и все... вот только что и где?
если не трудно напиши |
| Константин TorrentMaster 3515 |
# Дата: 22 Май 2007 12:37 ° Поправил: Константин Выше исправил скрипт |
| Snake_ilim Участник 11 |
# Дата: 8 Июн 2007 08:16 Константин, А можно сделать так чтобы из формы "от кого" в тело сообщения вставлялось, то что там написано? а то получается, что два раза повторяется от кого пришло письмо, первый раз когда получаешь сообщение там написано от кого, а второй когда читаешь сообщение, там в начале написано от кого... блин, чет как то каряво написал, но надеюсь поймешь ![]() |
| Константин TorrentMaster 3515 |
# Дата: 8 Июн 2007 14:04 Snake_ilim Ну поправь код сам, а
$messagebody .= "From: $accusername\n"; - это реальный отправитель $messagebody .= "Content-Transfer-Encoding: 8bit\n\na message from $fr\n$text\n - а здесь тело сообщения |
| Snake_ilim Участник 11 |
# Дата: 13 Июн 2007 09:55 Константин, я, конечно, понимаю, что ты относишься к моим вопросам преебрежительно, потому что для тебя это слишком просто, но для меня это абсолютно темный лес... я попробыввал поэксперементировать, но в результате только стало хуже... ![]() |
| . 1 . 2 . >> |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:51910, gzipped size:11910 |