Forum
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(
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.
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);
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ü
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.
sadece resim mi ekliyoruz. resim ile birlikte yazı da eklemek isityoruz. ne yapabiliriz
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.
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.
sadece resim mi ekliyoruz. resim ile birlikte yazı da eklemek isityoruz. ne yapabiliriz
mesaj.body = "eklemek istediğiniz metin";
iyi ki eklemişsin hocam teşekkürler 🙂
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
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");