Merhabalar,

Windows Form ile bir masaüstü uygulaması geliştiriyorum. Açılan ilk formda kullanıcı formu dolduruyor ve bir ek ekliyor( pdf,word vs.) daha sonra kaydedip çıkıyor. Bu eklenen dosyanın dosya yolunu sql server de kaydediyorum.

Daha sonra onay verecek kullanıcı programa giriyor ve oluşturulan forma onay veriyor. Onay verilince form ilgili kişiye mail olarak gidiyor. Sorun maile ilk formda eklenen doyayı ekleyemem. Yani mail gidiyor fakat eki gönderemiyorum.

Kodlarım şu şekilde;

DOSYA EKLEME BUTONUM (textbox a dosya yolunu atıyor ardından sql server'e kaydediyorum.)

private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog dosya = new OpenFileDialog();
dosya.Filter = "Tüm Dosyalar | *.*";
dosya.ShowDialog();


string dosyayolu = dosya.FileName;
string yeniyol = @"\\DOSYA YOLUM" + Guid.NewGuid().ToString();
File.Copy(dosyayolu, yeniyol);



textBoxDosyaYolu.Text = Path.GetFileName(yeniyol);


}


MAİL GÖNDERME KODUM (Dosya ekleme alanım 1.formda, mail gönderme işlemim 2.formda);

public void mailGonderDenetci()
{
string[] mails = textBoxDenetciMailAdresleri.Text.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

MailMessage mesaj = new MailMessage();//mesaj degiskenimiz, göndecegimiz e-posta mızın bütün elemanlarini bulundurmaktadir
mesaj.From = new MailAddress("MAİL ADRESİM");//mesaj gönderen adres
SmtpClient smtp = new SmtpClient(); //E-Posta’yi gönderen kullanicinin kimlik bilgilerini tutar
foreach (var mail in mails)
{
mesaj.To.Add(mail);//mail gönderilcek mesaj adresi
}


mesaj.IsBodyHtml = true;
mesaj.Subject = "DENETÇİ OLARAK ATANDINIZ."; //Mail Konusu

mesaj.Attachments.Clear(); // mail eklerini temizledik
Attachment attachment;
attachment = new Attachment("@textBoxDosyaYolu.Text"); //burada ilk formda eklenen dosya yolunu formda textbox ekleyerek yeniden çağırdım
mesaj.Attachments.Add(attachment);


string htmlString = getHtml(dataGridView2); //Mail İçeriği
mesaj.Body = htmlString;

smtp.Credentials = new System.Net.NetworkCredential("MAİL ADRESİM", "ŞİFREM");//Mail gönderen hesabın kullanıcı adı ve şifresi
smtp.Port = 587; //SMTP sunucusunun port bilgisini tutar.
smtp.Host = "smtp.office365.com"; // SMTP sunucusunun isim bilgisini tutar.
smtp.EnableSsl = true; //:Sunucu SSL istiyorsa bu degeri true yapacagiz. smtp.EnableSsl = true;
smtp.Send(mesaj); //Maili gönderme islemini yapar.
}


Şimdiden çok teşekkür eder, iyi çalışmalar dilerim.