mrb
hazırladığım html sayfasını outlook ile mail olarak göndermek istiyorum. sayfa içerisindeki tabloların bazılarının arka plan resimleri var. explorerda açıp sayfadaki tüm nesneleri seçerek outlook'a yapıştırdığımda tabloların arka planları için kullandığım resimler görüntülenmiyor. bunun ne şekilde yapıldığı konusunda yardımlarınızı bekliyorum.
html mail gönderme
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Selam,
Bu işlem için multipart mime email dosyası oluşturacaksınız. Extension ı eml olsun (ki outlook ile açabilesiniz) Bu dosyanın yapısı ise http://www.ietf.org/rfc/rfc2045.txt de tanımlanmıştır. Döküman size detayların tümünü verecektir.
Bununla birlikte, pratik olarak outlook u açın, bir html mail oluşturun, içine bir resim ekleyin ve bunu save edin. Sonra bir text editörle açıp bakın ve 2045 de tarif edilen formatın nasıl birşey olduğunu görün. Burada binary attachment ları eklemek için base64 kodlamasından geçirmeniz gerekli ki zaten baktığınızda orada da göreceksiniz. Nedeni ise smtp nin basit bir sistem olması ve maillerin body lerinin . ile bitmesi gibi sıradışı (şu an için öyle, icat edildiği yıllarda çok iyi bir fikirdi) yapısı nedeniyle 128 ve üzeri karakterlerin yeniden encode edilmesi gerekliliğidir.
Buraya kadar size bir html mailin nasıl bir yapıda olduğunu anlamanıza yarayacak bilgiler vermeye çalıştım. Render edilmiş ekranı nasıl bu formata dönüştüreceğim derseniz, zaten html i oluşturan kod sizde olduğuna göre php içinde tüm sayfayı bir değişkene alıp dosyay yazabilirsiniz.
Kolay gelsin.
Bu işlem için multipart mime email dosyası oluşturacaksınız. Extension ı eml olsun (ki outlook ile açabilesiniz) Bu dosyanın yapısı ise http://www.ietf.org/rfc/rfc2045.txt de tanımlanmıştır. Döküman size detayların tümünü verecektir.
Bununla birlikte, pratik olarak outlook u açın, bir html mail oluşturun, içine bir resim ekleyin ve bunu save edin. Sonra bir text editörle açıp bakın ve 2045 de tarif edilen formatın nasıl birşey olduğunu görün. Burada binary attachment ları eklemek için base64 kodlamasından geçirmeniz gerekli ki zaten baktığınızda orada da göreceksiniz. Nedeni ise smtp nin basit bir sistem olması ve maillerin body lerinin . ile bitmesi gibi sıradışı (şu an için öyle, icat edildiği yıllarda çok iyi bir fikirdi) yapısı nedeniyle 128 ve üzeri karakterlerin yeniden encode edilmesi gerekliliğidir.
Buraya kadar size bir html mailin nasıl bir yapıda olduğunu anlamanıza yarayacak bilgiler vermeye çalıştım. Render edilmiş ekranı nasıl bu formata dönüştüreceğim derseniz, zaten html i oluşturan kod sizde olduğuna göre php içinde tüm sayfayı bir değişkene alıp dosyay yazabilirsiniz.
Kolay gelsin.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
doganzorlu beyin bu detaylı açıklaması gayet net ve faydalı teşekkür ediyorum kendisine.
Aynı zamanda tablolarda kullanılan arkaplan resimleri:
<table background="000.gif">
şeklinde, hücrelerde kullanılan arkaplan resimleri:
<td background="000.gif">
şeklinde kullanılır. sen belgeyi copy paste yaptığında arka plan resimlerini alamazsın çünkü onlar o esnada kopyalanabilir nesne olarak görünmezler. Kopyaladığında kopyaladığın bilginin kaynak koduna bakacak olursan arka plan resimlerinin olduğu kısımdaki tagların hala background="000.gif" olduğunu görürsün. belge yüklenirken bu resimleri arar ve bulamaz. çünkü bu resimler (arka plan resimleri) belgeyi aldığın sunucuda yüklüdür. belgeyi yapan webmaster background="http://www.siteadresi.com/000.gif" şeklinde yapsaydı sorun olmayacaktı. bu sorunu aşmanın birkaç yolu var elbette aklıma gelenler:
1) belgeyi alıp outlooka yapıştıracaksan belgeden aldığın verileri öncelikle frontpage tarzı bi html editörüne yapıştırıp, <td background="000.gif"> gördüğün tagları <td background="http://www.siteadresi.com/000.gif"> şeklinde değiştireceksin
2) ki bu en zahmetsiz olanıdır. göndereceğin sayfayı mht formatında kaydetmektir. mht formatı doğan beyin bahsettiği mime email formatının mantığıyla çalışır ancak o mime email dir. bu ise mhtml yani web sayfasındaki resim v.s bilgileri html belge içine gömer. bu durumda sayfadaki resimleri de base64 kodlayarak sayfanın içine kaydeder. bu durumda resimleri de html belge içine toplamış olursunuz. kullandığı yan dosyalarla beraber tüm belge tek dosyada toplanır. bunu yapmak için dosya menüsünden farklı kaydet deyip dosya türünü mimepart html (mht) seçeceksiniz.
ikinci yöntemi kullanırsanız sorununuzun çözüleceğini umuyorum.
Aynı zamanda tablolarda kullanılan arkaplan resimleri:
<table background="000.gif">
şeklinde, hücrelerde kullanılan arkaplan resimleri:
<td background="000.gif">
şeklinde kullanılır. sen belgeyi copy paste yaptığında arka plan resimlerini alamazsın çünkü onlar o esnada kopyalanabilir nesne olarak görünmezler. Kopyaladığında kopyaladığın bilginin kaynak koduna bakacak olursan arka plan resimlerinin olduğu kısımdaki tagların hala background="000.gif" olduğunu görürsün. belge yüklenirken bu resimleri arar ve bulamaz. çünkü bu resimler (arka plan resimleri) belgeyi aldığın sunucuda yüklüdür. belgeyi yapan webmaster background="http://www.siteadresi.com/000.gif" şeklinde yapsaydı sorun olmayacaktı. bu sorunu aşmanın birkaç yolu var elbette aklıma gelenler:
1) belgeyi alıp outlooka yapıştıracaksan belgeden aldığın verileri öncelikle frontpage tarzı bi html editörüne yapıştırıp, <td background="000.gif"> gördüğün tagları <td background="http://www.siteadresi.com/000.gif"> şeklinde değiştireceksin
2) ki bu en zahmetsiz olanıdır. göndereceğin sayfayı mht formatında kaydetmektir. mht formatı doğan beyin bahsettiği mime email formatının mantığıyla çalışır ancak o mime email dir. bu ise mhtml yani web sayfasındaki resim v.s bilgileri html belge içine gömer. bu durumda sayfadaki resimleri de base64 kodlayarak sayfanın içine kaydeder. bu durumda resimleri de html belge içine toplamış olursunuz. kullandığı yan dosyalarla beraber tüm belge tek dosyada toplanır. bunu yapmak için dosya menüsünden farklı kaydet deyip dosya türünü mimepart html (mht) seçeceksiniz.
ikinci yöntemi kullanırsanız sorununuzun çözüleceğini umuyorum.