Обчитался кучу форумов, где рекомендуют отказываться от функции mail и слать через SMTP. Итак, реализация посредством PHPMailer+SMTP через gmail такая: 1) Скрипт для отсылки require_once($_SERVER["DOCUMENT_ROOT"]."/class.phpmailer.php"); $ClassMailer = new PHPMailer(); $content_html=file_get_contents("send.html"); $ClassMailer->CharSet = "windows-1251"; $ClassMailer->IsSMTP(); $ClassMailer->SMTPAuth = true; $ClassMailer->SMTPSecure = "ssl"; $ClassMailer->Host = "smtp.gmail.com"; $ClassMailer->Port = 465; $ClassMailer->Username = "sender@gmail.com"; // мой личный почтовый ящик на gmail $ClassMailer->Password = "my_password_on_gmail"; // пароль от моего ящика $ClassMailer->SetFrom ("mymail@site.com", ""); // будет светиться в отправителе $ClassMailer->AddReplyTo("mymail@site.com", ""); $ClassMailer->Subject = "Тестовая тема"; $ClassMailer->MsgHTML($content_html); $address = "receiver@gmail.com"; // адрес на который собственно и отсылается письмо $ClassMailer->AddAddress($address, ""); $ClassMailer->Send(); 2) Письмо, которое валится в спам имеет следующие заголовки: Return-path: <sender@gmail.com> Envelope-to: receiver@gmail.com Delivery-date: Wed, 25 Jan 2012 14:17:46 +0200 Received: from mail-ey0-f194.google.com ([209.85.215.194]:38073) by mv153.someserver.org with esmtps (TLSv1:RC4-SHA:128) (Exim 4.69) (envelope-from <sender@gmail.com>) id 1Rq1nN-0001RP-Py for receiver@gmail.com; Wed, 25 Jan 2012 14:17:45 +0200 Received: by eaaj10 with SMTP id j10so804483eaa.1 for <receiver@gmail.com>; Wed, 25 Jan 2012 04:18:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:to:from:reply-to:subject:message-id:x-priority:x-mailer :mime-version:content-type; bh=VK9MgdePdPT4kJ+zbzk8asMSrFS79qVCkS35GzgKaTg=; b=Nf6W8s1tMMQfY6wJzTxWuTz+iCEwtAHXvmdnZjIzIAz+JiezGsmWhvVisgYKecTKit 8rcAWmDQ+7Jg+NnYUyS8V/MP9gxhjtFaN4iukgc/xzNm8KE9ZR9BinjCI/6KOw0jdbo5 npmN+YKu0EQrW4qq+mFwG7d6Qc89stPdBFgnk= Received: by 10.213.15.12 with SMTP id i12mr3058707eba.107.1327493910608; Wed, 25 Jan 2012 04:18:30 -0800 (PST) Received: from some_server2.org.ua (some_server2.org.ua. [78.47.26.210]) by mx.google.com with ESMTPS id n56sm1001382eeh.6.2012.01.25.04.18.29 (version=SSLv3 cipher=OTHER); Wed, 25 Jan 2012 04:18:30 -0800 (PST) Date: Wed, 25 Jan 2012 14:19:56 +0200 To: receiver@gmail.com From: "=?windows-1251?B?0uLu6SDq4PLg6+7j?=" <sender@gmail.com> Reply-to: =?windows-1251?B?0uLu6SDq4PLg6+7j?= <mymail@site.com> Subject: =?windows-1251?B?x+Dv8/HqIO3u4u7j7iDh6Oft5fEg7+7w8uDr4CDk6/8gwuDx?= Message-ID: <0557e5d0a2d99edcb70b3063fd02a57f@tvoicata.merkel.org.ua> X-Priority: 3 X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_0557e5d0a2d99edcb70b3063fd02a57f" 3) Резюме: письмо на gmail приходит, но опять таки попадает в спам В настройках получателю прописывать мой домен нет возможности, потому что это письма которые приходят при регистрации, для подтверждения регистрации. Текст самого письма такой: Поздравляем с успешной регистрацией, ваш логин: такой-то Для завершения процедуры регистрации вам необходимо пройти по ссылке: http://mysite.com/go.php?id=98f79dsfd89ydivdds89fsf89s _______ С Уважение администрация сайта mysite.com Вопрос: что еще надо сделать чтобы этот gmail принимал письма в инбокс, а не в спам? P.S. в spamhaus айпишник сервера отправителя не значится.
Выяснить, почему письма попадают на определённых почтовиках в спам - это может оказаться довольно непростой задачей. Многие почтовые программы ещё и сами письма фильтруют, даже если почтовый сервер против этих писем ничего не имеет. Критериев там много разных. Outlook-у не нравятся (по крайней мере раньше не нравились) картинки из интернета в письмах (т.е. не прикреплённые как вложения, а просто ссылки на картинки из сети). Но вообще там много критериев и все их я сейчас уже не помню, конечно. И почтовые программы и почтовые сервисы могут считать спамом письма, у которых в поле From стоит один адрес, а при этом реально отправлены с другого. Возможно, по этому у тебя в спам падает. Создай реальный почтовый ящик на хостинге с твоим доменом и отправляй через него, то есть сделай настоящий почтовый ящик mymail@mysite.com . Либо не пиши ложных From, а так и пиши, что письмо отправлено с адреса sender@gmail.com . Некоторые почтовые программы и сервисы могут ещё и на IP-адреса смотреть...
Главное чтобы в DNS была MX-запись для домена, и чтобы ip-адрес, с которого отправляется письмо, соответствовал этому домену. После собаки должен быть настоящий домен, до - что угодно.
Все почтовые ящики которые светятся в From, Return-Path и др. все реальные адреса и при проверке от гугла на их существование он получит true
Я не о том, что ящики не существуют, а о том, что письмо реально отправляется с почтового ящика "А", но в качестве отправителя (from) указывается ящик "Б". Это явный обман получается. Я не знаю, как с этим обстоит в гугле, а маил.ру, например, вообще отказывается отправлять такие письма (если через их ящик пытаться отправлять письма php).
Ящиков-отправителей в природе не существует. Существуют почтовые серверы, они должны быть зарегистрированы в DNS с помощью MX-записи.
Попробовал отправлять с сервера на котором находится реальный домен, к которому принадлежат почтовые ящики через СМТП хостера - не помогло полтора суток назад прописали SPF запись: v=spf1 include:_spf.google.com ~all которая должна показать гуглу, что это реальный домен, и что с него письма надо принимать в инбокс, возможно еще надо подождать, но на данный момент тоже не помогло
Решил еще текст письма поковырять, если убрать единственную ссылку для подтверждения регистрации, то письмо сразу попадает в инбокс, возвращаю ссылку, попадает в спам. Может что-то еще в теле ХТМЛ надо убрать/добавить?