[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.7960 Reply
File: SK.png
Png, 22.72 KB, 569×422 - Click the image to expand
edit Find source with google Find source with iqdb
SK.png
А есть тут суровые люди, умеющие sendmail?
Как отправлять письма через внешний smtp?
Мне, например, надо через яндекс сделать.
>> No.7961 Reply
sendmail это и есть SMTP-сервер, ему абсолютно незачем другой для отправки
ставишь в поле FROM свой адрес на яндексе да отправляешь
>> No.7963 Reply
>>7961
На гугль например не пускает в таком случае
Наверное еще куда пускать не будет
>> No.7964 Reply
>>7963 значит у тебя реверс-днс нету.
>> No.7965 Reply
>>7964
Што это?
>> No.7966 Reply
>>7965 гугли инструкции по настройке электропочты. Я не буду разжевывать тут то, что разжевано в интернетах тысячу раз.
>> No.7975 Reply
>>7961
> ставишь в поле FROM свой адрес на яндексе да отправляешь
Лол.
Гугль сверяет ип отправителя с ип домена, и если ты не являешься яндексом, что маловероятно, то это не получится. Еще у гугля есть какое-то подобие вайтлиста, попасть в который он "пока" не дает.
Оп, попробуй найти релей для своей почты. Можно погуглить на тему яндекс-релея, единственное, что любое письмо отправленное через него будет с отправителем relayloginname@yandex.ru.
А вообще, гугль же пишет что ему не нравится.
>> No.8152 Reply
>> No.8166 Reply
>>7960
<?php
	#Функция обработки переменных
	function getVariable($variable) {
		$variable = htmlspecialchars(stripslashes($_POST[$variable]));
		if (empty($variable)) die("<h1>Please, fill all fields.</h1>");
		return $variable;
	}

	#Функция получения ответа от сервера
	function get() {
		global $s;
		$data="";
		while($str = fgets($s,512))
		{
			$data .= $str;
			if(substr($str,3,1) == " ")  break; 
		}
		echo "<b>$data</b><br>";
		return $data;
	}	
	
	#Функция отправки данных на сервер
	function send($data) {
		global $s;
		fputs($s,$data."\r\n");
	}
	
	$smtp = getVariable('smtp'); #smtp сервер
	$port = getVariable('port'); #порт
	$login = getVariable('login'); #логин
	$password = getVariable('password'); #пароль
	$from = getVariable('from'); #адрес отправителя
	$to = getVariable('to'); #адрес получателя
	$subject = getVariable('subject'); #тема
	$message = getVariable('message'); #текст письма
	$do_header = $_POST['do_header']; #способ формирования заголовка
	$priority = $_POST['priority']; #приоритет сообщения

	#заголовок по умолчанию
	$header="Date: ".date("l, j M Y H:i:s")." +0700\r\n";	
	$header.="To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($to)))."?= <$to>\r\n";
	$header.="Subject: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($subject)))."?=\r\n";

	#изменение заголовка в зависимости от параметров
	if ($do_header == "clear") $header = htmlspecialchars(stripslashes($_POST['header']));
	if ($do_header == "add") $header .= htmlspecialchars(stripslashes($_POST['header']))."\r\n";
	if ($priority == 'High') $header .= "X-Priority: 1 (High)\r\n";
	if ($priority == 'Low') $header .= "X-Priority: 5 (Low)\r\n";
	
  set_time_limit(0);
//	ini_set(max_execution_time,60); #время жизни сценария (1 минута)

	$s = fsockopen($smtp,$port) or die("<h1>Can not open a socket</h1>"); #Открываем сокет

	#Обмен данными с сервером
	send("EHLO $smtp");
	get();
	send("AUTH LOGIN");
	get();
	send(base64_encode($login));
	get();
	send(base64_encode($password));
	get();
	send("MAIL FROM:$from");
	$flag = get();
	send("RCPT TO:$to");
	get();
	send("DATA");
	get();
	send("$header\r\n".$message."\r\n.");
	get();
	send("QUIT");
	get();

	fclose($s); #Закрываем сокет 
  echo $a;
?>
</thread>
>> No.8167 Reply
>>8166
upd:
<form method='post'>
	<table>
		<tr><td>SMTP Server:<td><input type='text' name='smtp' value='smtp.domain.com'><td rowspan='7'>
		<tr><td>Port:<td><input type='text' name='port' value='25'>
		<tr><td>Login:<td><input type='text' name='login' value='login'>
		<tr><td>Password:<td><input type='password' name='password' value=''>
		<tr><td>From:<td><input type='text' name='from' value='login@domain.com'>
		<tr><td>To:<td><input type='text' name='to' value='recepient@domain.com'>
		<tr><td>Subject:<td><input type='text' name='subject' value='subject'>
		<tr><td>Header:<td colspan='2'><textarea name='header' cols='70' rows='7'></textarea> 
		<tr><td>&nbsp;<td colspan='2'>
			<input type='radio' name='do_header' value='nothing' checked>Leave default header.
			<input type='radio' name='do_header' value='add'>Add to header.
			<input type='radio' name='do_header' value='clear'>Replace header.
		<tr><td>Priority<td>
			<select name='priority'>	
				<option>High
				<option selected>Normal
				<option>Low
			</select>
		<tr><td>Message:<td colspan='2'><textarea name='message' cols='70' rows='7'>Your message</textarea>
	</table>
	<br>
	<input width='100px' type='submit' value='SEND'>
	<input width='100px' type='reset' value='RESET'>	
</form>
>> No.8168 Reply
>>8166
На питоне том же самом код в 3 раза короче. У похапе нет smtp-библиотеки?
>>8167
> <table>
> &nbsp;
> незакрытый <option>
>> No.8169 Reply
>>8168
> На питоне том же самом код в 3 раза короче. У похапе нет smtp-библиотеки?
У похапе есть все нужные библиотеки, просто примерный код как это работает. Если есть мозг, то можно быстро переписать под любой язык (используя готовые библиотеки или вот так "напрямую"). Что было под рукой - то и взял. Не придирайся, можешь считать это кривым косплеем олдскула :3
> незакрытый <option>
Не обязателен закрывающий тег для стандартных хтмлей без всяких там валидаторов.
>> No.8171 Reply
>>8169
Тег-то необязателен, да вот выглядит как таблица вокруг.
> стандартных хтмлей без всяких там валидаторов
wut?
>> No.8173 Reply
>>8171
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
алсо да, для себя под стандартным хтмлем я имел ввиду его версию 3.2.
>> No.8176 Reply
>>8173
> html 3.2
> 06 August 2010
Ты пойди и font'ом до сих пор пользуешься?

А без доктайпа вообще не хоршо. Дело в том, что кроме ie6 существуют другие браузеры, и каждый видит дефолтный доктайп по разному.
>> No.8177 Reply
>>8176
Не перегибай палку. Я написал только то, что написал для данного конкретного случая, касаемо вопроса о необходимости закрывающего тега <option>.
>> No.8199 Reply
>>7960
Алсо, замечу, что лучше бы ОП взял вместо sendmail postfix или exim4 - их настраивать гораздо удобней. Лично мне нравится exim4, за его няшную возможность доставать любую опцию конфигурации из loojup'ов.
>> No.8201 Reply
>>8199
Доброчую постфикс, гораздо удобнее в настройке, чем sendmail
>> No.8202 Reply
Сендмэйл - это засохшее говно мамонта. В нем были найдены тысячи уязвимостей. Его конфиги по читаемости хуже скриптов на перле.

Тащемта двачую постфикс и экзим. А вообще добавляешь гуглевские MXы на домене и получаешь нормальный почтовик, с нормальным спам-фильтром.
На своих серверах я устал ебаться с спам-ассасином чтобы не получать тысячи спама в инбоксе.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]