Php açılı ayraçlar

3 Cevap php

I sonunda bir HTML e-posta göndermek için mail () kullanmak istiyorum çünkü ben PHP bir dizesinde açılı ayraçlar depolamak istiyor.

Aşağıdaki çalışmak için görünmüyor kodudur.

while(...) {
   $msg .= "<img src=\"http://.../images/".$media['Path']."\"><br>";
   echo "message: ".$msg."<br>";
}

Ne istiyorum satır sonları ile ayrılır ($ medya ['Yol'] tarafından sağlanan) görüntülerin bir demet içeren $ msg içindir. Sonra $ msg) (postaya geçirilir.

Eko resim gönderiliyor olduğunu teyit etmektedir. Ve, gerçekten, ben e-posta vücutta hiçbir görüntü almak. Bu neden oluyor? Bunu nasıl düzeltebilirim?

3 Cevap

Bir e-posta görüntü gömme iki yolu vardır:

  1. Dış referanslar gibi: {[(0)];} ve
  2. E-posta gömülü.

(1) Ne yapmaya çalışıyorsun ne tahmin edilmektedir. Onlar canlılık için e-posta hesaplarını sınamak için spam tarafından kullanılan çok posta programları (haklı olarak) bu tür görüntüleri engeller.

Bunu yapmak için daha iyi (2). Bkz PHP Email: Using Embedded Images in HTML Email. Temelde bir çok parçalı MIME e-posta (yani HTML ve görüntüleri ekleyebilirsiniz) ve daha sonra cid yerine gerçek bir URL ile bunları referans oluşturmak. Bu çok daha az şüpheli onları alır ama açıkçası (görüntü yerine sadece bir URL göndermek 100.000 kez gönderilmiş olabilir gibi) büyük e-postalar neden herhangi bir mail programı vardır.

Eğer dışarı echo'd alır HTML kontrol ettiniz mi? Muhtemelen yanlış görüntü yolu var. Ayrıca, bu e-posta için gidiyoruz eğer, (http://yoursite.com/images/theimage.jpg yerine images / theimage.jpg) mutlak bir yol kullanmak gerekir.

Ayrıca bunu, HTML yerine düz metin olarak gönderilir alır böylece doğru mail() fonksiyonu kurmak başlıklarına sahip olduğunuzdan emin olun.

Ayrıca, sorun size yardımcı olabilecek Swiftmailer veya PHPMailer gibi bir posta sarıcı kullanabilirsiniz. Eğer olsa bir zaman sınırı vardır, bu yüzden aslında bu gibi bir şey kullanarak genelinde dönüştürmek için daha uzun sürebileceğini söyledi.