Mail İçeriğindeki Ek Hk.

28/10/2018, 16:13

serkan1985

Arkadaşlar merhaba uygulamam da mail gönder mevcut mail gönderiyorum fakat kayda ait eki mail içeriğine iliştirerek gönderemiyorum. Konu hakkında yardımıza ihtiyacım var desteğiniz için şimdiden teşekkürler.

Private Sub Command20_Click()

Dim C As Integer
C = MsgBox("emin misin?", vbYesNo + vbQuestion + vbDefaultButton1, "1")
If C = vbNo Then
DoCmd.RunCommand acCmdUndo
End If
         
           Set appOutLook = CreateObject("Outlook.Application")
           Set MailOutLook = appOutLook.CreateItem(olMailItem)
           With MailOutLook

           .To = Me.Email_Address
           .Subject = Me.GEMİ & SEFER
           .HTMLBody = Me.mess_text
           .SendObject = Me.EK
           If Left(Me.Mail_Attachment_Path, 1) <> "<" Then
               .Attachments.Add (Me.Mail_Attachment_Path)
           End If
           '.DeleteAfterSubmit = True   'This would let Outlook send th note without storing it in your sent bin
           .Send
           End With
           DoCmd.Close
           'MsgBox MailOutLook.Body
           Exit Sub
email_error:
           MsgBox "An error was encountered." & vbCrLf & "The error message is: " & err.Description
           Resume Error_out
Error_out:

End Sub
29/10/2018, 03:22

ozanakkaya

Merhaba, outlook programına ek ekleme olayı sadece dizinde bulunan dosya için geçerlidir. Access tablosundaki eki maile ekleyemezsiniz.
Önce ek olarak kaydedilen dosyayı dizine aktarmanız gerekli. Kodun tamamı aşağıdaki gibi olmalı.

'Dim C As Integer'
'C = MsgBox("Gözetim memurlarına iletiyorsun geri dönüş yok emin misin?", vbYesNo + vbQuestion + vbDefaultButton1, "Sharp Eye") '
'If C = vbNo Then'
'DoCmd.RunCommand acCmdUndo'
'End If'
Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem

Dim GDosyaAdi  As String
Dim rsKayit As DAO.Recordset2
Dim GEk

Set rsKayit = Me.Recordset
Set GEk = rsKayit.Fields("EK").Value
GDosyaAdi = Environ("Temp") & "\" & GEk.Fields("FileName")

If Len(Dir(GDosyaAdi)) > 0 Then

   Kill GDosyaAdi

End If


Set appOutLook = CreateObject("Outlook.Application")
Set MailOutLook = appOutLook.CreateItem(olMailItem)
   With MailOutLook

           .to = Me.Email_Address
           .Subject = Me.GEMİ & SEFER
           .HTMLBody = Me.mess_text

           GEk.Fields("FileData").SaveToFile Environ("Temp")
           .Attachments.Add GDosyaAdi
           
           '.DeleteAfterSubmit = True   'This would let Outlook send th note without storing it in your sent bin
           .Send
           End With
           DoCmd.Close
           'MsgBox MailOutLook.Body
           Exit Sub
email_error:
           MsgBox "An error was encountered." & vbCrLf & "The error message is: " & err.Description
           Resume Error_out
Error_out:


Kodun stabil çalışması için önce "Microsoft Outlook XX.0 Object Library" referansını eklemeniz gerekli.

Koddaki 


Set rsKayit = Me.Recordset
Set GEk = rsKayit.Fields("EK").Value
GDosyaAdi = Environ("Temp") & "\" & GEk.Fields("FileName")
GEk.Fields("FileData").SaveToFile Environ("Temp")

Kısmı, ek alanındaki dosyayı bilgisayarınızdaki Temp dizinine kaydeder. Maile ek olarak bu kaydedilen dosya kullanılır.
29/10/2018, 21:30

serkan1985

Ozan bey çok teşekkür ederim emeğinize sağlık sorunum sayenizde çözümlenmiştir.
29/11/2018, 16:16

Oğuz Türkyılmaz

Ozan Bey Outlook değilde info@grupkozmetik.com şeklinde bir özel mail adresi kullanıyorsak. Bu durumda Mail Gönderme ayarlarında ve Accessden aldığımız raporu mail ile  ek dosya olarak göndermek için yukardaki kodlarda ne gibi bir revizyon yapmak gerekir. Teşekkürler.
29/11/2018, 16:21

ozanakkaya

(29/11/2018, 16:16)Oğuz Türkyılmaz yazdı: Ozan Bey Outlook değilde info@grupkozmetik.com şeklinde bir özel mail adresi kullanıyorsak. Bu durumda Mail Gönderme ayarlarında ve Accessden aldığımız raporu mail ile  ek dosya olarak göndermek için yukardaki kodlarda ne gibi bir revizyon yapmak gerekir. Teşekkürler.

Merhaba, kodlarda hiçbir değişiklik yapamazsınız. Bu kodu kullanacaksanız mail adresinizi outlooka eklemeniz gerekiyor. Bu örnek outlook aracılığı ile mail gönderir. 

Outlook olmadan gönderebilmeniz için SMTP Hesabıyla E-mail Gönderme Uygulaması konusunu incelemeniz gerekiyor. Mail ayarlarını sunucunuzdan öğrenebilirsiniz.
29/11/2018, 19:24

Oğuz Türkyılmaz

(29/11/2018, 16:21)ozanakkaya yazdı:
(29/11/2018, 16:16)Oğuz Türkyılmaz yazdı: Ozan Bey Outlook değilde info@grupkozmetik.com şeklinde bir özel mail adresi kullanıyorsak. Bu durumda Mail Gönderme ayarlarında ve Accessden aldığımız raporu mail ile  ek dosya olarak göndermek için yukardaki kodlarda ne gibi bir revizyon yapmak gerekir. Teşekkürler.

Merhaba, kodlarda hiçbir değişiklik yapamazsınız. Bu kodu kullanacaksanız mail adresinizi outlooka eklemeniz gerekiyor. Bu örnek outlook aracılığı ile mail gönderir. 

Outlook olmadan gönderebilmeniz için SMTP Hesabıyla E-mail Gönderme Uygulaması konusunu incelemeniz gerekiyor. Mail ayarlarını sunucunuzdan öğrenebilirsiniz.

Teşekkür ederim. Hemen okuyorum.