Forum

C# ile Mail Gö...
 
Bildirimler
Hepsini Temizle

[Çözüldü] C# ile Mail Gövdesine Resim Yerleştirme

11 Yazılar
6 Üyeler
0 Likes
6,997 Görüntüleme
(@ServetAtasoy)
Gönderiler: 57
Trusted Member
Konu başlatıcı
 

Herkese Selamlar,

Normail mail ve attachtment mail olarak gönderim de bir sorun yok. Yanlız E-Bülten niteliğinde mailin gövdesine resim yerleştirmek istiyorum. Küçük bir ayrıntı var. Gövdeye yerleştirmek istediğim resmi eğer herhangi bir hosttan link vererek yerleştirdiğimde sorun yok. Ben localden eklenen resmin gövdeye yerleşmesini istiyorum.

Kodlar aşağıdaki gibidir.

MailMessage

mesaj = new MailMessage();

 

mesaj.From =

new MailAddress("[email protected]", "Ross Pharma E-Bülten", System.Text.Encoding.UTF8);

SmtpClient smtp = new SmtpClient();

mesaj.To.Add(

"[email protected]");

 

mesaj.Subject =

"Deneme";

mesaj.Body =

@"<html><body><a href='www.rosspharma.com.tr'><img src='C:\deneme.jpg'></a></body></html>";

 

 

mesaj.IsBodyHtml =

true;

smtp.Credentials =

new System.Net.NetworkCredential("[email protected]", "şifre");

 

smtp.Port = 587;

smtp.Host =

"mail.deneme.com.tr";

 

smtp.Send(mesaj);

Teşekkürler.

 
Gönderildi : 12/03/2013 16:22

(@ServetAtasoy)
Gönderiler: 57
Trusted Member
Konu başlatıcı
 

Sorun çözülmüştür. İleride birilerinin işine yaraması amacıyla gerekli kodları ekliyorum.

mesaj.body kodunu silip aşağıdaki kodları araya eklediğiniz takdirde istenileni veriyor.

AlternateView

plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");

AlternateView htmlView = AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo>", null, "text/html");

LinkedResource logo = new LinkedResource(@"C:\Users\Administrator\Desktop\DSC_0015.jpg");

 

logo.ContentId =

"companylogo";

htmlView.LinkedResources.Add(logo);

mesaj.AlternateViews.Add(plainView);

mesaj.AlternateViews.Add(htmlView);

 
Gönderildi : 12/03/2013 16:42

(@Anonim)
Gönderiler: 0
 

hocam bunları nereye yazacağız. kodların tamamını gönderirseniz seviniriz. Bende bankaların gönderdiği gibi email göndermek istiyorum. Olmadı bir türlü

 
Gönderildi : 12/03/2013 20:02

(@ServetAtasoy)
Gönderiler: 57
Trusted Member
Konu başlatıcı
 

try

{

MailMessage mesaj = new MailMessage();//mail nesnesi

 

mesaj.From =

new MailAddress("gönderilecek adres", "Başlık", System.Text.Encoding.UTF8);

SmtpClient smtp = new SmtpClient();

//mesaj.To.Add("alıcı adresi");

 

 

mesaj.Subject =

"Mail başlığı";

AlternateView plainView = AlternateView.CreateAlternateViewFromString("alternate", null, "text/plain");

AlternateView htmlView = AlternateView.CreateAlternateViewFromString("<img src=cid:companylogo>", null, "text/html");

LinkedResource logo = new LinkedResource("mail gövdesine eklenecek resim yolu");

logo.ContentId =

"companylogo";

htmlView.LinkedResources.Add(logo);

mesaj.AlternateViews.Add(plainView);

mesaj.AlternateViews.Add(htmlView);

mesaj.IsBodyHtml =

true;

smtp.Credentials =

new System.Net.NetworkCredential("gönderilecek mail adresi", "şifre");//kullanici adi ve sifre sicili

 

smtp.Port = 587;

smtp.Host =

"smtp sunucusu";

smtp.Send(mesaj);

}

catch (Exception ex)

{

MessageBox.Show("HATA! Gönderilemedi!");

}

butonun click olayına bu kodları ekleyip, gerekli alanları kendine göre doldurman yeterli olacaktır.

 
Gönderildi : 12/03/2013 20:25

(@Anonim)
Gönderiler: 0
 

sadece resim mi ekliyoruz. resim ile birlikte yazı da eklemek isityoruz. ne yapabiliriz

 
Gönderildi : 13/03/2013 01:23

(@davuteren)
Gönderiler: 1584
Noble Member
 

bu şekilde resim sizin local bilgisayarınızda kalır. karşıdaki kişi de resimler görüntülenemiyor olarak gözükür.

 
Gönderildi : 13/03/2013 01:52

(@ServetAtasoy)
Gönderiler: 57
Trusted Member
Konu başlatıcı
 

bu şekilde resim sizin local bilgisayarınızda kalır. karşıdaki kişi de resimler görüntülenemiyor olarak gözükür.

 

Davut bey,

 

Evet resmi localden alıyor fakat giden kullanıcıda gözükmeme gibi bir durum olmuyor. Bizzat test ettim. Outlook'a localden resim ekleyip mail göndermek gibi düşünülebilir.

 

bilgilerinize. 

 
Gönderildi : 14/03/2013 02:04

(@ServetAtasoy)
Gönderiler: 57
Trusted Member
Konu başlatıcı
 

sadece resim mi ekliyoruz. resim ile birlikte yazı da eklemek isityoruz. ne yapabiliriz

 

mesaj.body = "eklemek istediğiniz metin"; 

 
Gönderildi : 14/03/2013 02:08

(@TalipYildiz)
Gönderiler: 5
Active Member
 

iyi ki eklemişsin hocam teşekkürler 🙂

 
Gönderildi : 10/08/2018 12:42

(@VolkanYildirim)
Gönderiler: 1
New Member
 

try

{

MailMessage mesaj = new MailMessage();//mail nesnesi

 

mesaj.From =

new MailAddress("gönderilecek adres", "Başlık", System.Text.Encoding.UTF8);

SmtpClient smtp = new SmtpClient();

//mesaj.To.Add("alıcı adresi");

 

mesaj.Subject =

"Mail başlığı";

AlternateView plainView = AlternateView.CreateAlternateViewFromString("alternate", null, "text/plain");

AlternateView htmlView = AlternateView.CreateAlternateViewFromString("<img src=cid:companylogo>", null, "text/html");

LinkedResource logo = new LinkedResource("mail gövdesine eklenecek resim yolu");

logo.ContentId =

"companylogo";

htmlView.LinkedResources.Add(logo);

mesaj.AlternateViews.Add(plainView);

mesaj.AlternateViews.Add(htmlView);

mesaj.IsBodyHtml =

true;

smtp.Credentials =

new System.Net.NetworkCredential("gönderilecek mail adresi", "şifre");//kullanici adi ve sifre sicili

 

smtp.Port = 587;

smtp.Host =

"smtp sunucusu";

smtp.Send(mesaj);

}

catch (Exception ex)

{

MessageBox.Show("HATA! Gönderilemedi!");

}

butonun click olayına bu kodları ekleyip, gerekli alanları kendine göre doldurman yeterli olacaktır.

 

hocam gerekli alanları doldurup maili yolladığımda sadece mailde resim gözüküyor fakat

mesaj.Body="deneme";

yazdığımda body deki mesaj gözükmüyo yardım ederseniz sevinirim çok mutlu olurum teşekkürler

 
Gönderildi : 05/11/2018 20:04

(@YusufCEYLAN)
Gönderiler: 9
Active Member
 

@VolkanYildirim

konuya sonradan bakanlar için bilgi amaçlı yazmak istiyorum.

mesaj.Body kısmını burada kullanmanıza gerek yok. Çünkü htmlView adında bir görüntü oluşturuluyor bu yöntem ile.

Yani mailde görüntülenmesini istediğiniz mesajı htmlView'in içine HTML kodları ile eklemeniz gerekiyor.

Buradaki kısma örnek;

 AlternateView htmlView = AlternateView.CreateAlternateViewFromString("<img src=cid:companylogo><p>Mail içeriği buraya yazılabilir.</p>",null, "text/html");

 
Gönderildi : 11/04/2020 00:41

Paylaş: