Отправка почты

STRELOK

Новичок
Отправка почты

В общем делаю у себя регистрацию пользователей на сайте, щас дошел до этапа где надо отослать письмо. Начал делать класс отправки почты (вернее взял у ДЛЕ, и переделываю под себя, заодно вникаю в то как это работает вообще)... Вроде все правильно...

Но, на мне на мыло письма не доходят (майл, яндекс)... Более того, даже с локального сайта на ДЛЕ тоже не доходят...

Это нормально? Как тогда тестировать? (Хостинг есть)
 

Фанат

oncle terrible
Команда форума
Никакой полезной информации в вопросе не содержится.
 

STRELOK

Новичок
А я что то не понятно спросил? Тут черным по серому написано, что отправленная почта с моего компа на мое мыло не приходит.


Заюзал библиотеку PHPMailer, хорошая вещь, но все равно не приходят!!!

Каким образом тогда тестировать все это???
 

dimagolov

Новичок
раз не приходят, значит не работает.

а непонятно все. каким способом отправляешь (sendmail или черзе SMTP, если через него, то через какой), какие заголовки ставишь и т.п.
 

STRELOK

Новичок
Код. Сделал тестовый модуль к себе на сайт, который обрабатывает www.site.net/mail/

PHP:
$this -> wse -> tpl -> StartNativePage();
$this -> wse -> mailer -> Subject = 'Это тест';
$this -> wse -> mailer -> Body = 'Это тест моей почтовой системы!';
$this -> wse -> mailer -> AddAddress('[email protected]', 'STRELOK');
if(!$this -> wse -> mailer -> Send())
{
  echo 'Не могу отослать письмо!';
}
else
{
  echo 'Письмо отослано!';
}
$this -> wse -> mailer -> ClearAddresses();
$this -> wse -> mailer -> ClearAttachments();
$this -> wse -> tpl -> StopNativePage( " - " . "123");
Класс отправки почты, можно сказать ничем не модифицированный PHPMailer

PHP:
require_once(php_path('phpmailer/class.phpmailer.php',LIB_DIR));

class WSE_Mailer extends PHPMailer
 {
	 public $wse;
	 
	 public function WSE_Mailer($wse)
	  {
		  $this->wse = $wse;
		  
		  $this -> ContentType = $this -> wse -> cfg -> site_cfg["charset"];
		  $this -> From = $this -> wse -> cfg -> site_cfg["mail_from_email"];
		  $this -> FromName = $this -> wse -> cfg -> site_cfg["mail_from_name"];
		  if ($this -> wse -> cfg -> site_cfg["mail_smtp_mode"] == "on")
		   {
			   $this -> Mailer = "smtp";
			   $h = $this -> wse -> cfg -> site_cfg["mail_smtp_host"];
			   $p = $this -> wse -> cfg -> site_cfg["mail_smtp_port"];
			   $u = $this -> wse -> cfg -> site_cfg["mail_smtp_user"];
			   $p = $this -> wse -> cfg -> site_cfg["mail_smtp_pass"];
			   
			   if ($h != "") $this -> Host = $h;  
			   if ($p != "") $this -> Port = $p;
			   if ($u != "" and $p != "")
			    {
					$this->SMTPAuth  = true;
					$this->Username  = $u;
					$this->Password  = $p;
				}
		   }
	  }
 }
Часть XML файла с настройками:

Код:
<mail_from_name>WebSiteEngine</mail_from_name>
<mail_from_email>[email protected]</mail_from_email>
<mail_smtp_mode>off</mail_smtp_mode>
<mail_smtp_host></mail_smtp_host>
<mail_smtp_port></mail_smtp_port>
<mail_smtp_user></mail_smtp_user>
<mail_smtp_pass></mail_smtp_pass>
 

dimagolov

Новичок
ну и как по-твоему отправляется почта этим кодом? каким методом?
 

dimagolov

Новичок
если бы ты читал ман, то ты бы знал, что для работы ф-ии mail нужен на машине sendmail. то, что происходит с письмами после отправки их пхп нужно смотреть в его логе.

[telepat mode on]
твой sendmail посылается за елки всеми почтовиками, так как у тебя нету ни домена, ни MX записи, ни back-resolve.
[telepat mode off]

на хостинге вопросы отправки почты надо решать с суппортом хостинга.
 

STRELOK

Новичок
то что я и хотел услышать: с локальной машины письмо не отправишь.

Код код...

-~{}~ 07.01.10 15:50:

Та а если пойти другим способом... (Но он тоже не работает)

Как правильно присоединиться к smtp серверу яндекса или майла?
 

dimagolov

Новичок
Как правильно присоединиться к smtp серверу яндекса или майла?
нужно иметь или полноценный почтовый домен, или аккаунт на данных серверах и передавать почту как их клиент (если они такое позволяют)

а еще провайдер может предоставлять своим клиентам открытый (может не совсем) релей
 

STRELOK

Новичок
Автор оригинала: dimagolov
нужно иметь или полноценный почтовый домен, или аккаунт на данных серверах и передавать почту как их клиент (если они такое позволяют)

а еще провайдер может предоставлять своим клиентам открытый (может не совсем) релей
Ясно... Спасибо...

-~{}~ 07.01.10 16:09:

Автор оригинала: *****
позволяют
не понял!
 

STRELOK

Новичок
Ок, щас поем схожу и подумаю, а то даже не завтракал сегодня =)
 
Сверху