Outlook 2007 başlıklarıyla kaynağı olarak html postayı alır, diğerleri MUA'lar iyi çalışır.

8 Cevap php

Ben bir html-sadece e-posta göndermek, basit formları bir çift var. Çoğu müşteriler sadece para cezası e-postaları almak (Gmail, Lotus Notes 8, hotmail / live, windows mail, outlook express canlı), ancak Outlook 2007 değil.

Kod şöyle görünür:

$data="
            <html>
                <body>
                    <strong><u>$sub</u></strong><br><br>
                    <strong>Name:</strong> {$_POST["nombre"]}<br><br>
                    <strong>Phone:</strong>{$_POST["telefono"]}<br><br>
                    <strong>Email:</strong> {$_POST["email"]}<br><br>
            <strong>Subject:</strong> {$_POST["asunto"]}<br><br>
                    <strong>Question:</strong> {$_POST["consulta"]}</strong>
                </body>
            </html>";
            $header = "Reply-To: $from\r\n";
            $header .= "From: \"".$_POST["nombre"]."\" <$from>\r\n";
            $header .= "MIME-Version: 1.0\r\n";
            $header .= "Content-Type: text/html; charset=iso-8859-1\r\n";

            $enviado = mail($destino,$sub,$data,$header);

($from valide mesajın sadece bir parçasıdır)

Müşteri tarafından alınan mesaj şöyle:

Content-Type: text/html; charset=iso-8859-1
From: Consulta de "Boss" <boss@myfirm.com>
Reply-To: boss@myfirm.com
X-Mailer: PHP/

<strong><u>Solicitud de envío de recetas -
CLIENT</u></strong><br><br><strong>Nombre y Apellido:</strong>
Boss<br><br><strong>Email:</strong>
boss@myfirm.com<br><br><br>

Herhangi bir fikir?

8 Cevap

Eğer biz outlook 2k3 ve 2K7 (olağandışılıklar kötü HTML işleme) ile sorunları yoktu bunu yaparken, çok parçalı e-posta göndererek denedim

<?php
$header = "From: Sender <sen...@domain.org>\r\n";
$header .= "Reply-to: Sender <blabla...@domain.net>\r\n";
$header .= "X-Mailer: Our Php\r\n";

$boundary = "==String_Boundary_x" .md5(time()). "x\r\n";
$boundary2 = "==String_Boundary2_y" .md5(time()). "y\r\n";

$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/related;\r\n";
$header .= " type="multipart/alternative";\r\n";
$header .= " boundary="$boundary";\r\n";

$message = "If you read this, your email client doesn't support MIME\r\n";

$message .= "--$boundary\r\n";
$message .= "Content-Type: multipart/alternative;\r\n";
$message .= " boundary="$boundary2";\r\n";

$message .= "--$boundary2\r\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "Alternative message in plain text format.\r\n";

$message .= "--$boundary2\r\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "<html><body><p>HTML formatted message</p></body></html>";

İstediğini ile sınırları değiştirebilirsiniz, ancak benzersiz olmalıdır.

Daha güçlü ve esnek bir e-posta php göndermek için ben kullanmanızı öneririm SwiftMailer

EDIT: Outlook 2007 gerçekten aptal HTML renderer olduğu gibi, aynı zamanda biçimlendirme sabitleme deneyebilirsiniz, orada bir </font>, sizin örnekte açıldı asla bilmem bu gerçek posta veya söz bir yazım hatası eğer.

Ben çok benzer bir sorun vardı, sizin getirilerinden / r kaldırmayı deneyin ve yalnızca / n kullanabilirsiniz. Outlook andd hotmail / r / n ile sorun var.

I confirm the experience with Exchange janmoesen has shared. Had to change CRLF in headers to just LF, then it started working.

(Bana ekstra% 40 zaman işe olması için, bir kez daha, size Microsoft ederim.

Ayrıca gerçek bu işaret için janmoesen için teşekkür ederiz! Bu arama bitti.)

Ben Outlook 2007 ile aynı sorunla karşılaştı.

Cevap basit: \r\n \n ile değiştirin

Mesajı HTML ise sizin gibi bunu tespit etmek gerekir:

$header .= "Content-Type: text/html; charset=iso-8859-1\r\n";

Ben her zaman MIME kodlanmış HTML postalar ile daha iyi bir şans oldu. Sadece bir parçası olsa bile, ben genellikle / karma kullanımı ve açıkça içerik türünü (text / html) ayarlayın. PHP ile çok aşina değilim, ama PEAR::Mail_Mime paketi aday gibi görünüyor.

Outlook bu işleme bir sorun olmamalıdır. (Üzerine emphisis shouldn't).

Ben benzer sonuçlar ile başlıklarında Borsası'nda (sadece Outlook) ve CRLF ile sorun vardı. Temelde, girişte Borsası'nda karıştırılmış alacağı, CRLF ayrılmış başlıklarıyla (Postfix ile Debian PHP kullanarak) postaları gönderme edildi. O değişti, \r\n sadece \n, sorun gitti edildi. ("RFC lanet olsun!", Ha?)

YMMV, belli ki, diğer posta istemcileri Outlook gibi aynı sunucuya bağlanmak, ya da tamamen ayrı sunucular kullanın olmadığı açık değildir çünkü.