WordPress’e e-posta ile blog yazma

Posted: Ağustos 28th, 2007 | Author: | Filed under: Wordpress | 31 Comments »

Wordpress E-Posta ile BloglamaWordPress kullanan çoğu kişi Tercihler > Yazma bölümüne girmiştir ve orada E-posta ile yazma diye bir şey görmüştür. Ne olduğunu anlamayanlar e-posta adreslerinin şifrelerini bile girmiş olabilir. Ben bu e-posta ile yazma nedir nasıl çalışır diye merak ediyordum ve bugün araştırdım. Türkçe olarak hiç kaynak bulamadım, İngilizce kaynaklarda sınırlı.

Şimdi sizlerle nasıl e-posta yollayarak blog yazılır onu paylaşacağım. Ne gerek var e-posta ile blog yazmaya diyebilirsiniz. Buna ben de katılıyorum :) Ama bu cep telefonumuzdan da blogumuza yazı yollamaya yarayabilir. Her an her yerden blog yazabilmek aslında güzel bir şey :)

WordPress Blog Sisteminde E-posta İle Yazı Yazma

WordPress

  1. WordPress yönetim paneline giriş yapıp, Tercihler>Yazma bölümüne geliyoruz. Bizden posta sunucusu, giriş ismi, parola istiyor. Şimdi ikinci adıma geçip bu bilgileri elde edelim. Burada bizden SSL kullanmadan giriş yapabileceğiniz bir POP3 mail hesabı istiyor. Gmail SSL’siz girişe izin vermiyor ama Cpanel ile oluşturduğunuz mailler SSL’siz girişe izin veriyor. Yani Cpanel’den bir tane oluşturabilirsiniz.
  2. POP3 oluşturabileceğiniz panelinize (örn:cpanel) girin ve <adres>@domain.com gibi bir mail adresi oluşturun. Burada önemli olan <adres> kısmına başka kimsenin tahmin edemeyeceği sadece sizin bildiğiniz bir adres yazmanız. Çünkü bu mail atılan tüm e-postalar blogunuzda yazı olarak görülecek.
  3. POP3 maili oluşturduktan sonra Yazma ayarlarının yapıldığı sayfaya dönün aşağıdaki ayarları yapın.
    • Posta sunucusu : mail.domain.com (Genelde böyledir)
    • Giriş ismi: <adres>+domain.com (Eğer e-posta cpanelden oluşturulduysa arada + olmalıdır)
    • Parola: şifreniz…..
    • Varsayılan posta kategorisi: E-posta ile eklenen yazıların hangi kategoriye atılacağı..
  4. Bu ayarları yaptıktan sonra <adres>@domain.com a bir e-posta yollayın. Türkçe karakter problemi çıkmaması için karakter kodlaması UTF-8 olmalı.
  5. http://<blog adresimiz>/wp-mail.php adresine girin. Bu sayfa <adres>@domain.com e-postasına gelen yazıları blogunuza yazı olarak aktarır.
  6. Bu kadar :)

Aslında bu kadar kolay değil. Eğer çalıştıysa ne mutlu size! WordPress 2.2.2′de bu olay bu kadar kolay çalışmıyor. Düzeltilmesi gereken hata var. Hata Posted content: kısmında içeriğin gözükmemesi. Bunu da şöyle aşıyoruz;

wp-inculdes/class-pop3.php dosyasını açın
(369. satır) $line = fgets($fp,$buffer);

ile
(377. satır) $count++;
arasındaki kodları silin. Sonra bu iki satır arasına şu kodları yapıştırın;

if (preg_match(“/^\s+\S+/”, $line) && $count > 0) { $MsgArray[$count-1] .= $line; continue; }
if ((ereg(“^\.\r\n”,$line)) || (empty($line))) { break; }
if (ereg(“^\.\.”, $line)) { $MsgArray[$count] = substr($line, 1); }
else { $MsgArray[$count] = $line; }

Bunu yaptıktan sonra eğer gönderdiğiniz e-postanın Content-Transfer-Encoding’i 7bit ise artık content kısmında yazı çıkacak. Ama uzun yazılarda bu böyle değildir. En azından Gmail’den yollanan maillerde öyle degil.

Ben oluşturduğum POP3 maile blog yazısı yollarken GMail’i kullandım. Hem cep telefonumdan hem de webden e-posta yolladım. Uzun yazılarda yani 1-2 kelimeden fazla olan yazılarda Content-Transfer-Encoding: base64 olarak geliyordu. Yani yazılar base64 kullanılarak şifrelenmiş olarak geliyor. Şimdi bunu aşmalıyız. Nasıl mı ? Bunu decode ederek :) Bunu da şöyle yapıyoruz :

wp-mail.php dosyasındaki 127. satırdaki bu kodu bulun
$content[1] ? $content = $content[1] : $content = $content[0];

hemen altına bu kodu ekleyin
if ($content_transfer_encoding = “base64″) { $content = base64_decode($content); }

Şifrelenmiş yazıyı çözme işini de yaptık ve artık herşey tamam. Artık e-posta ile blogumuza yazı yazabileceğiz. Fakat her mail attıktan sonra yazımızın blogumuza eklenmesi için wp-mail.php sayfasına girmemiz gerekiyor. Bunu da otomatik olarak yapan bir eklenti varmış: Wp-Cron Belgelerde wp-cron’u kurun ve o kendi kendine çalışsın diyor fakat eklenti biraz sorunlu.. Eğer çalışmazsa onun yerine iframe ile wp-mail’i sürekli kontrol ettirebilirsiniz. Yani şu kodu sayfanızın bir köşesine yerleştirerek;

<iframe src=”http://<blog adresiniz>/wp-mail.php” name=”mailiframe” width=”0″ height=”0″ frameborder=”0″ scrolling=”no” title=”"></iframe>

Yazıyı buraya kadar okuyan varsa teşekkürler, yazım boşa gitmedi demektir.. Aslında tamamını okuyacak pek kişi yok ama ben merak ettim nasıl yapıldığını ve Türkçe kaynak olmadığı yazdım. Mutluyum :)

Kaynaklar


31 Comments on “WordPress’e e-posta ile blog yazma”

  1. 1 oyyla.com said at 11:22 on Ağustos 29th, 2007:

    e-posta göndererek blogunuzu güncel tutun

    e-posta göndererek blogunuzu güncel tutun.. çok faydalı bir eklenti bence ve neXus kaynakları türkçe ye çevirip bizim için detaylı bir biçimde anlatmış hatalara çözümler göstermiş.. size sadece kullanmak kalıyor..

  2. 2 kubio said at 18:13 on Ağustos 30th, 2007:

    öyle bir sekme göremedim bende mi bir sorun var ? :s

  3. 3 Hüseyin Berberoğlu said at 22:00 on Ağustos 30th, 2007:

    wordpress yönetim paneline girince yönet’in altında Yazma var. olması gerek :)

  4. 4 askin said at 20:03 on Ekim 20th, 2007:

    Tesekkurler yazi icin. Ama yazinizda verdiginiz eklenti yi wordpress ten aktif etmeme ragmen otomatik eklemeyi basaramadim.

    saygilar,

  5. 5 Hüseyin Berberoğlu said at 21:15 on Ekim 21st, 2007:

    wp-cron’dan bahsediyorsanız o eklentinin çalışmasında problem olduğunu yazmıştım.. verdiğim iframe kodu ile sürekli kontrol işi yapılabilir

  6. 6 mustafa said at 20:22 on Ekim 27th, 2007:

    emeğinize sağlık deneyeceğim,

  7. 7 mustafa said at 21:51 on Ekim 27th, 2007:

    uyarladım karakter hatası dışında oldu,

    mu 1.2.5 kullanıyorum; 127 . satırda belirttiğiniz kodlar yok, kodları hızlıca komple taradım bulamadım….

    resmi siteye bakmıştım, ingilizcem olmadığı için yapamamıştım, benim için yazınız büyük bir kaynak oldu, tekrar teşekkür ederim…

  8. 8 mustafa said at 21:58 on Ekim 27th, 2007:

    Bir şeyi atladım kusura bakmayın; üstte verdiğiniz kodları kopyalayınca ” işaretleri kodda hata veriyor, aşağıya düzelttiğim şeklini verdim, ihtimal aşağıdakilerde kayıtta bozulabilir, deneyecek olan arkadaşlar dikkat etsinler, bilinen bir şeysede kusura bakmayın… Saygılar…

    if (preg_match(“/^\s+\S+/”, $line) && $count > 0) { $MsgArray[$count-1] .= $line; continue; }
    if ((ereg(“^\.\r\n”,$line)) || (empty($line))) { break; }
    if (ereg(“^\.\.”, $line)) { $MsgArray[$count] = substr($line, 1); }
    else { $MsgArray[$count] = $line; }

  9. 9 DASTAN said at 13:52 on Kasım 3rd, 2007:

    Merhaba. uzun zamandır bende bunu arıyordum nasıl yapılır diye. Şöyle ki benim avuçiçi bilgisayarımı kullanarak yapmak istediğim şey tam anlamıyla bu fakat belirttiğiniz tüm herşeyi yaptım lakin hala bir iki kelime haricinde görünmüyor. Başlık tam olarak çıkıyor ama içerikte bir sıkıntı var çözemedim. Yukarıda dediğiniz herşeyi yaptım.

    base64_decode ile ilgili de aynı zamanda gmail den göndermek olabilir diye düzenledim. PDA’dan ise gmail den ya da kendi bloguma ait mailinden gönderdiğim maillerde sıkıntı yaşıyorum.

  10. 10 Green Card said at 23:35 on Mart 4th, 2008:

    güzel bir site, konuları da güzel seçiyorsunuz, umarım devamı gelir

  11. 11 selman said at 19:54 on Nisan 21st, 2008:

    burda anlatılanları uyguladım ama çalışmadı..yardımcı olur musunuz ?

  12. 12 Hüseyin Berberoğlu said at 16:46 on Nisan 22nd, 2008:

    @selman, nerede takıldığını veya karşılaştığın problemi yazarsan belki yardımcı olabilirim.

  13. 13 mırc said at 22:48 on Temmuz 31st, 2008:

    gercekten cok guzel emek harcayanlara tskler

  14. 14 sohbet said at 14:19 on Ekim 3rd, 2008:

    Emeğinize sağlık.. teşekkür ederim

  15. 15 egitimist said at 13:34 on Mayıs 23rd, 2009:

    Teşekkürler. deneyeceğim. Eminim bu konuyu merak eden pek çok kişi vardır. Yazınızı isim-link vb. kaynak göstererek Pardus-Linux e-dergisinde yayımlayabilir miyiz?

  16. 16 Hüseyin Berberoğlu said at 09:47 on Mayıs 25th, 2009:

    @egitimist Eğer bu yöntem halen çalışıyorsa tabi ki yayımlayabilirsiniz :)

  17. 17 Serkan YILDIRIM said at 12:10 on Şubat 8th, 2010:

    Sürümler değişti, yapılacak işlemler değişti ama yazınızı bu kadar ayrıntılı olarak hazırladığınız için teşekkürler. Gerçekten de sonuna kadar okudum. Ben halen sorun yaşayanlardanım. Çözümü bulursam bende yayınlarım :)

  18. 18 Hüseyin Berberoğlu said at 12:14 on Şubat 8th, 2010:

    @Serkan YILDIRIM, evet sürümler, işlemler değişti. Bunu yazıya eklemek daha iyi olurdu ama yorumla belirtmeniz/belirtmemiz de iyi oldu. Keşke yeni bir yazıyla yeni sürümlerde nasıl yapılacağını anlatacak vakti bulabilsem. Ama askerden döndüm diye bir yazı bile yazamadım daha :|

    Yorum için teşekkürler.

  19. 19 endy said at 18:51 on Haziran 4th, 2010:

    Sonuna kadar okudum teşekkürler. Tamda aradığım kısma nokta atışı yapmışsınız :)

  20. 20 endy said at 19:09 on Haziran 4th, 2010:

    sayfada su hatayı alıyorum.
    “Parse error: syntax error, unexpected ‘^’ in /home/turkknet/public_html/wp/wp-includes/class-pop3.php on line 368″

    o kısma eklediğim ise sizin dediğiniz kısım ,ama sanırım sürüm farklılıkları hataya neden oluyor. düzeltme şansı varmıdır.?

    367 $line = fgets($fp,$buffer);
    368 if (preg_match(“/^\s+\S+/”, $line) && $count > 0) { $MsgArray[$count-1] .= $line; continue; }
    369 if ((ereg(“^\.\r\n”,$line)) || (empty($line))) { break; }
    370 if (ereg(“^\.\.”, $line)) { $MsgArray[$count] = substr($line, 1); }
    371 else { $MsgArray[$count] = $line; }
    $count++;

  21. 21 Hüseyin Berberoğlu said at 20:16 on Haziran 4th, 2010:

    @endy, yazıyı yazalı çok oldu, artık geçerli olmayabilir. Bu aralar pek bakma şansım yok maalesef.

  22. 22 endy said at 12:52 on Haziran 7th, 2010:

    Cevap yazma nezaketiniz için yinede teşekkürler..Başarılar…

  23. 23 byefem said at 14:46 on Eylül 12th, 2010:

    Kardeş emeğine ellerine sağlık… saolasın..çok hayra geçti.. valla…allah razı olsunç…. :)))

  24. 24 MilletiminSesi.Org » WordPress Blog Sisteminde E-posta İle Yazı Yazma said at 14:53 on Eylül 12th, 2010:

    [...] http://www.birazkisisel.com/wordpresse-e-posta-ile-blog-yazma/comment-page-1/#comment-2085 [...]

  25. 25 Hasan said at 02:45 on Ekim 5th, 2010:

    Yazı için teşekkürler. Eline sağlık. Ben şimdi bu ayarları yapmaya çalışıyorum. Ama başarılı olamadım. Html kodu olarak mesaj göndermek istiyorum.Ama daha hiç yazı yayınlayamadm. Gmail kullandığım için sorun oluyor galiba. Ama siz de gmail kullanmışsınız.Yardımcı olursanız seviniriö. Teşekkürler

  26. 26 hoş sözler said at 15:19 on Şubat 19th, 2011:

    Gmail kullanınca sorun olmaz dostum sanmıyorum..

  27. 27 Hasan said at 20:59 on Şubat 19th, 2011:

    Bir eklentiyle hallettim. Tekrar teşekkürler

  28. 28 soner said at 15:45 on Mart 10th, 2011:

    çok faydalı bilgiler için teşekkürler

  29. 29 emrex said at 11:16 on Kasım 4th, 2011:

    cok teşekkürler. Hosting sayfamdan bir email hesabı yapılandırdım bilgilerini wp ye girdim. o adrese gel tum mailler wpye post olarak düsüyor sanırım halletmis oldum. :)

  30. 30 Uğur said at 20:06 on Ocak 26th, 2012:

    Merhaba, daha önce yapmıştım fakat sürüm değişikliğinden kaynaklı yapamıyorum tekrar. Postu panele düşürüyorum, yalnız yazı içeriği görünmüyor. Bu konuda yardımcı olabilir misiniz?

  31. 31 Hüseyin Berberoğlu said at 20:36 on Ocak 26th, 2012:

    Bu yazıdan sonra bir daha bu konu ile uğraşmadım, yardımcı olamıyorum maalesef.


Leave a Reply