Word Belgesini Mail ile gönderme(attacment olarak değil ama)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir
Word Belgesini Mail ile gönderme(attacment olarak değil ama)
Arkadaşlar Merhaba
Şirkette kullanılmak üzere indy bileşenlerini(idsmtp,idmessage) kullanarak outlook tarzı bi mail gönderme programı yaptım.Toplu mail gönderebiliyorum müşterilerimize, Attachment özelliğini de kullanabiliyorum.Ama şu bölümde takıldım;
Outlook'ta body kısmına word belgesini kopyalayıp yapıştırabiliyoruz ya, bende bunun gibi body kısmına hazırlanmış standart bir mail şablonunu (tablolar,resimler,renkler,yazı tipi,boyutu vs.)aynı şekilde yerleştirmek ve gönderebilmek istiyorum.
İnanın çok araştırdım ama bulamadım.Bu konuda bilgi sahibi olan varsa lütfen benimle paylaşsın.
Şimdiden çok teşekkürler
Şirkette kullanılmak üzere indy bileşenlerini(idsmtp,idmessage) kullanarak outlook tarzı bi mail gönderme programı yaptım.Toplu mail gönderebiliyorum müşterilerimize, Attachment özelliğini de kullanabiliyorum.Ama şu bölümde takıldım;
Outlook'ta body kısmına word belgesini kopyalayıp yapıştırabiliyoruz ya, bende bunun gibi body kısmına hazırlanmış standart bir mail şablonunu (tablolar,resimler,renkler,yazı tipi,boyutu vs.)aynı şekilde yerleştirmek ve gönderebilmek istiyorum.
İnanın çok araştırdım ama bulamadım.Bu konuda bilgi sahibi olan varsa lütfen benimle paylaşsın.
Şimdiden çok teşekkürler
Herşeye Rağmen....
Selamlar,
Bir fikir vermesi açısından ben olsaydım ne yapardım diyorum kendime ve aklıma Outlook'un bazı ayarları aklıma geliyor.
Hazırlanacak olan Mailler, HTML mi olmalı yoksa, text mi olmalı gibi bir seçeneği var. Demek ki, Word belgesi de bir nevi HTML olarak kaydediliyordur Mail'e. Haaaa outlook bunu kendi içerde ayırt edebiliyordur, ve içeriğini size Word kullanarak gösteriyordur. Ama muhtemelen Outlook dışında bir mail programıyla açmaya kalkarsanız, size mail'i bir attachment olarak gösterecektir.
Yani aslında bir aldatmaca ile Body'deymiş gibi gösterebilirsiniz.
Açılacak olan Mailin tipine bakıp, haaa bak bu HTML'miş deyip, ekrana bir HTML viewer getirip, mailin body kısmını onun içinde gösterebilirsiniz, bakarsınız ki Text o zaman bir memo edit gibi bir şeyin içinde gösterirsiniz.
Yani maile göre viewer seçersiniz.
Bilmem bir fikir olur mu bu sizin için.
Kolay Gelsin
Bir fikir vermesi açısından ben olsaydım ne yapardım diyorum kendime ve aklıma Outlook'un bazı ayarları aklıma geliyor.
Hazırlanacak olan Mailler, HTML mi olmalı yoksa, text mi olmalı gibi bir seçeneği var. Demek ki, Word belgesi de bir nevi HTML olarak kaydediliyordur Mail'e. Haaaa outlook bunu kendi içerde ayırt edebiliyordur, ve içeriğini size Word kullanarak gösteriyordur. Ama muhtemelen Outlook dışında bir mail programıyla açmaya kalkarsanız, size mail'i bir attachment olarak gösterecektir.
Yani aslında bir aldatmaca ile Body'deymiş gibi gösterebilirsiniz.
Açılacak olan Mailin tipine bakıp, haaa bak bu HTML'miş deyip, ekrana bir HTML viewer getirip, mailin body kısmını onun içinde gösterebilirsiniz, bakarsınız ki Text o zaman bir memo edit gibi bir şeyin içinde gösterirsiniz.
Yani maile göre viewer seçersiniz.
Bilmem bir fikir olur mu bu sizin için.
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir
Öncelikle teşekkürler:)Çok güzel ve profesyonel bir fikir bu!!Bununla ilgili çalışma yapacağım
Ama benim programım bu kadar profesyonel değil ve çok fazla zamanımda kalmadı:(
Acaba bunu yapmanın daha kısa bi yolu yokmudur??indy bileşenleri buna imkan sağlamıyormudur?
Lütfen yardım:(
Ama benim programım bu kadar profesyonel değil ve çok fazla zamanımda kalmadı:(
Acaba bunu yapmanın daha kısa bi yolu yokmudur??indy bileşenleri buna imkan sağlamıyormudur?
Lütfen yardım:(
Herşeye Rağmen....
word belgesi olarak değil de html biçimli olarak gönderebilirsiniz.
bunun için
idmessage nesnesinin Charset özelliğini iso-8859-9 olarak
ContentType özelliğini de text/html olarak değiştirin.
idmessage nesnesinin body kısmına ise html kodlarını yazın.
örneğin:
mailinizi bu şekilde gönderdikten sonra alıcılar biçimli bir şekilde mailleri alacaklardır.
bunun için
idmessage nesnesinin Charset özelliğini iso-8859-9 olarak
ContentType özelliğini de text/html olarak değiştirin.
idmessage nesnesinin body kısmına ise html kodlarını yazın.
örneğin:
Kod: Tümünü seç
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>hede hödö</h1>
<h2>Delphi Türkiye</h2>
<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>
</body>
</html>
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir
Merhaba Seroki ,Dediğiniz gibi idmessage charset ve content type ayarlarını uyguladım.Ancak html kodlarını text olarak algılayıp aynen gönderiyor:(
sizin örneğinize benzer bir örnek denedim bende aynen böyle göndermiş;
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>hede hödö</h1>
<h2>Delphi Türkiye</h2>
<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>
</body>
</html>
neden kaynaklanıyor sizce?
Teşekkürler
sizin örneğinize benzer bir örnek denedim bende aynen böyle göndermiş;
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>hede hödö</h1>
<h2>Delphi Türkiye</h2>
<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>
</body>
</html>
neden kaynaklanıyor sizce?
Teşekkürler
Herşeye Rağmen....
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir
mkysoft yazdı:Jedi içinde richtext var. birde richtext to html ve html to richtext nesnleri var. word belgesinin içeriğine rich text'e atabilirsiniz. ama tabloları destekliyormu bilmiyorum. daha sonra html kodlarını richtext'den alarak body olarak gönderin.
Merhaba Mkysoft,
Bu bileşenleri nereden temin edebilirim?
Teşekkürler
Herşeye Rağmen....
@SeRoKi'nin söylediklerini farklı uygulamış olabilirsiniz.
- Bu kodları örneğin bir TMemo'ya atarak uygulamayı deneyin. Örnek :
- Bu kodları örneğin bir TMemo'ya atarak uygulamayı deneyin. Örnek :
Kod: Tümünü seç
With Memo1.Lines do begin
Clear;
Add('<html>');
Add('<head>');
Add('<title>Test</title>');
Add('</head>');
Add('<body>');
Add('<h1>hede hödö</h1>');
Add('<h2>Delphi Türkiye</h2>');
Add('<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>');
Add('</body>');
Add('</html>');
end;
IdMessage1.Body.Assign(Memo1.Lines);
IdMessage1.ContentType := 'text/html';
IdSMTP1.Connect;
IdSMTP1.Send( idmessage1 );
IdSMTP1.Disconnect;
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir
Arkadaşlar sağolun tavsiyeleriniz için, tavsiyelerinize uydum ve ikisinide uyguladım ama hala aynı gönderiyor.
Keşke yanlış uygulamış olsam yada posta kutusunun ayarlarından kaynaklanıyor olsa
Memo nun içeriğini text olarak gönderiyor bi güzel.Html'e dönüştüreyim falan demiyor sağolsun!!!Yahoo , hotmail ikisinede gönderdim text olarak yolluyor.
Nasıl çözümleyeceğimi bilmiyorum,takıldım kaldım burada.Forumda da araştırmadığım yer kalmadı.Offline dosyayı indirdim onuda taradım ama yok!!
Lütfen Yardımmmmmmmmm
Keşke yanlış uygulamış olsam yada posta kutusunun ayarlarından kaynaklanıyor olsa
Memo nun içeriğini text olarak gönderiyor bi güzel.Html'e dönüştüreyim falan demiyor sağolsun!!!Yahoo , hotmail ikisinede gönderdim text olarak yolluyor.
Nasıl çözümleyeceğimi bilmiyorum,takıldım kaldım burada.Forumda da araştırmadığım yer kalmadı.Offline dosyayı indirdim onuda taradım ama yok!!
Lütfen Yardımmmmmmmmm
Herşeye Rağmen....
Bir teyid mekanizması kuralım.
- Bu oluşturulan maili mrmarman@gmail.com adresine yollatır mısınız. Bence mail testi yaptığınız posta hesabının html desteği bulunmuyor. Çünkü şahsen denedim ve doğru çalışıyor.
- Bu oluşturulan maili mrmarman@gmail.com adresine yollatır mısınız. Bence mail testi yaptığınız posta hesabının html desteği bulunmuyor. Çünkü şahsen denedim ve doğru çalışıyor.
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir
Hotmail'de denenmiştir. Gelen maili Junk klasöründe buldum.
Bileşenin özelliklerini tekrar kontrol edin.
Hotmailin içeriği engelleme gibi bir durumu söz konusu. idMessage bileşenine daha fazla tanıtıcı bilgi ekleyerek Inbox klasörüne gitmesi sağlanabilir.
Test edilen ortam: Windows Live Posta kutusu, Mynet ücretsiz e-posta hesabı posta kutusu.
Bileşenin özelliklerini tekrar kontrol edin.
Hotmailin içeriği engelleme gibi bir durumu söz konusu. idMessage bileşenine daha fazla tanıtıcı bilgi ekleyerek Inbox klasörüne gitmesi sağlanabilir.
Test edilen ortam: Windows Live Posta kutusu, Mynet ücretsiz e-posta hesabı posta kutusu.
Mail içerisinde ContentID ile resim gönderme (EK olarak değil)
Merhaba..
- Gönderdiğiniz mailden anlaşıldığı üzere hata su yüzüne çıktı.
- Deneyerek gönderilmiş örneklerin sizde çalışmamasının nedeni örnekleri aynen uygulamayarak, kendi kodlarınızla karştırıp kendinize göre denemeler gerçekleştirmiş, sanki "bizim gönderdiğimiz örnekler sizde çalışmıyor" şeklinde sonuçlar anlaşılmıştır.
Kural : TIdMessage.Body özelliğini; birden fazla bölümden oluşacaksa, bölümlerinden her biri sadece ve sadece ContentType'ı 'text/....' olan içerik taşıyanları yani herhangi başka türden ek taşımayan durumlarda kullanılır.
- Siz HTML için 'text/html' demişsinizdir ama resim de eklemişiniz. Bu durumda HTML kaynak kod IdMessage Body olarak değil de Attachment'a eklenmeliydi.
- Aşağıda bir HTML mail gönderme örneği hazırladım. Bunu kendinize göre uygulayın. Örnek içeriğinde HTML içerisinde nasıl CID (ContentID) ekleneceğini de örnekledim. Delphi'deki SQL sorgularındaki parametrik yapının benzeridir.
- Biliyorsunuz resimlerinizi eklediğinizde mesajın sonunda gelir. Bu şekilde mesajın dilediğiniz bir yerinde görüntülenmesi sağlanır.
- Ek Bilgi, hesabız SSL destekli ise (örneğin GMail hesabı) OpenSSL DLL'lerinin program klasörüne eklenmesi ve bazı ayar değişiklikleri gerekecektir.
- Örnekte her nesne
- Artık kendi çözümünüzü üretebilirsiniz. Başarılar...
- Gönderdiğiniz mailden anlaşıldığı üzere hata su yüzüne çıktı.
- Deneyerek gönderilmiş örneklerin sizde çalışmamasının nedeni örnekleri aynen uygulamayarak, kendi kodlarınızla karştırıp kendinize göre denemeler gerçekleştirmiş, sanki "bizim gönderdiğimiz örnekler sizde çalışmıyor" şeklinde sonuçlar anlaşılmıştır.
Kural : TIdMessage.Body özelliğini; birden fazla bölümden oluşacaksa, bölümlerinden her biri sadece ve sadece ContentType'ı 'text/....' olan içerik taşıyanları yani herhangi başka türden ek taşımayan durumlarda kullanılır.
- Siz HTML için 'text/html' demişsinizdir ama resim de eklemişiniz. Bu durumda HTML kaynak kod IdMessage Body olarak değil de Attachment'a eklenmeliydi.
- Aşağıda bir HTML mail gönderme örneği hazırladım. Bunu kendinize göre uygulayın. Örnek içeriğinde HTML içerisinde nasıl CID (ContentID) ekleneceğini de örnekledim. Delphi'deki SQL sorgularındaki parametrik yapının benzeridir.
- Biliyorsunuz resimlerinizi eklediğinizde mesajın sonunda gelir. Bu şekilde mesajın dilediğiniz bir yerinde görüntülenmesi sağlanır.
- Ek Bilgi, hesabız SSL destekli ise (örneğin GMail hesabı) OpenSSL DLL'lerinin program klasörüne eklenmesi ve bazı ayar değişiklikleri gerekecektir.
- Örnekte her nesne
Kod: Tümünü seç
// Uses'a Eklenecekler : IdMessage, IdSMTP
Var
IdSMTP : TIdSMTP;
IdMessage : TIdMessage;
HTMLpart : TIdText;
Attachment : TIdAttachment;
begin
// Mail Server Ayarları
IdSMTP := TIdSMTP.Create(Nil);
IdSMTP.AuthenticationType := atLogin;
IdSMTP.Host := 'mail.com.tr';
IdSMTP.Username := 'isim';
IdSMTP.Password := 'şifre';
IdSMTP.Port := 25;
// Mail Body işlemleri
IdMessage := TIdMessage.Create( nil );
IdMessage.From.Name := 'Muharrem ARMAN';
IdMessage.From.Address := 'mrmarman@hotmail.com';
IdMessage.Recipients.Add;
IdMessage.Recipients[0].Name := 'DivXTurk';
IdMessage.Recipients[0].Address := 'divxturk@gmail.com';
IdMessage.Subject := 'eMail Konusu';
IdMessage.ContentType := 'multipart/mixed';
HTMLpart := TIdText.Create( IdMessage.MessageParts );
HTMLpart.ContentType := 'text/plain';
HTMLpart.Body.Text := '';
HTMLpart.ContentTransfer := 'quoted-printable';
HTMLpart := TIdText.Create( IdMessage.MessageParts );
HTMLpart.ContentType := 'text/html';
HTMLpart.ContentTransfer := 'quoted-printable';
With HTMLpart.Body do begin
Clear;
Add('<html>');
Add('<head>');
Add('<title>Test</title>');
Add('</head>');
Add('<body>');
Add('<h1>hede hödö</h1>');
Add('<h2>Delphi Türkiye</h2>');
Add('<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>');
Add('<center><img src="cid:BizimResim.BMP"></center>');
Add('<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>');
Add('</body>');
Add('</html>');
end;
Attachment := TIdAttachment.Create( IdMessage.MessageParts, 'EMAIL1.bmp' );
Attachment.ContentType := 'image/bmp';
Attachment.ContentDisposition := 'attachment';
Attachment.ExtraHeaders.Values['content-id'] := 'BizimResim.BMP';
IdSMTP.Connect;
IdSMTP.Authenticate;
IdSMTP.Send( IdMessage );
IdSMTP.Disconnect;
Attachment.Free;
IdMessage.Free;
IdSMTP.Free;
end;
En son mrmarman tarafından 06 Mar 2016 08:17 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Üye
- Mesajlar: 18
- Kayıt: 17 Eki 2006 11:24
- Konum: İzmir