Андрей в рубрику Разное

Вопрос: SMTP Error

Здравствуйте, не получается реализовать email-рассылку. PHP mail() каждый раз спотыкается на произвольном мыле.
При том, что на локальной машине (на denwer-е) всем письма прекрасно "отправляются" и складируются в папочку. А вот Mirohost выделуется.
Сегодня дали кусок лога sendmail-а, вот пришел за советом. Т.к. сам в sendmail-е дуб дубом, и гугл ничем не смог мне помочь.
Лог:
2009-10-24 15:24:40 1N1ffk-0004SO-4m <= <> H=vh62.mirohost.net [193.178.145.51]:44628 I=[89.184.64.125]:25 P=esmtp S=6236 id=E1N1ffk-00070d-6A@vh62.mirohost.net T="Mail delivery failed: returning message to sender" from <> for php-sender-site.example.com@undeliver.mirohost.net
2009-10-24 15:24:40 1N1ffk-0004SO-4m ** example@ukr.net <php-sender-site.example.com@undeliver.mirohost.net> F=<> R=dnslookup T=remote_smtp: SMTP error from remote mail server after pipelined DATA: host mxs.ukr.net [195.214.192.100]: 550 http://ukr.net/mta/err.html#nobounces?89.184.64.125 

Задайте свой вопрос

Если у вас есть вопрос по разработке или дизайну сайтов, вы можете задать его на Временно.нет и тысячи наших читателей помогут вам найти на него ответ.

Задать свой вопрос

Расскажите друзьям

Ответы на вопрос — 4

Grin
Покажите вашу функцию отправки писем
#
Grin
Андрей
function send($array) {
    global $debugMode, $debugEmails;
    $sender = 'Sender Name <email@sender.com>';
	$i = 1;
    foreach ($array as $email=>$hash)
	{
		if (TRUE === $debugMode && !in_array($email, $debugEmails)) continue;

		$email = trim(strtolower($email));
		$hash  = trim(strtolower($hash));

        if (valid_email($email))
		{
        	$hash = md5($email . $hash);
            $text = str_replace('%HASH%', $hash, trim(stripslashes(urldecode($_POST['mail']))));
			$subject = trim(stripslashes(urldecode($_POST['subject'])));
			$headers = 'From: '     . $sender . "\r
" . 'Reply-To: ' . $sender . "\r
" . 'Content-type: text/html; charset=windows-1251' . "\r
"; $mail_sent = mail($email, $subject, $text, $headers); if (!$mail_sent) { echo '<pre style="border:1px solid #d5d5d5;padding:10px;">'; var_dump('Line: ' . $i, $mail_sent, $email, $subject, $headers); echo '</pre>'; exit(1); } } $i++; } return $i; }

Т.е. функция принимает массив (email => хеш пароля) меняет метку в теле письма на нужный хеш и делает отправку.
Две глобальные переменные — это вкл./выкл. "решим отладки", если включен, адреса фильтруются соответственно с белым списком $debugEmails.
#
Андрей
Андрей
Еще один вопрос, который терзает мою душу — принцип работы mail(). Т.е. какие шаги (операции) в каком порядке выполняются.
Если не сложно, поделитесь ссылкой.
Спасибо.
#
Андрей
Grin
Вот лично у меня никогда не получалось отправлять мыла в цикле, попробуйте делать скрытые копии и одну отправку. Ну или поставьте таймаут на какждый шаг цикла
#
Grin

Новый ответ

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler