| eternity | 22.07.2004 - 16:14:54 |
| merhabalar
küçük bir projemiz için başvuranlara otomatik mail gönderecek bir uygulama yapmak istiyorum. nasıl yapabilirim | |
| sadettinpolat | 22.07.2004 - 16:23:31 |
| SMTP'nin CDONTS Objesi ile Mail Göndermek
CDO(Collaboration Data Objects) SMTP Server'ı kullanan bir mail komponenti. SMTP server ise IIS ile birlikte gelmekte. ÖRNEK <%
'-- Mail nesnesi tanımlandı. Dim MyObject as "CDONTS.NewMail" 'çalışmazsa bu satırı kapatın. '-- Mail nesnesi oluşturuldu. Set MyObject=CreateObject("CDONTS.NewMail") MyObject.Subject="Buraya Konu gelecek" MyObject.From="Kimden" MyObject.To="Kime" MyObject.MailFormat=0 '-- importance= 0(düşük derecede önemli), 1(normal derecede önemli), 2(yüksek derecede önemli) MyObject.Importance=1 MyObject.BodyFormat=1 MyObject.Body="Buraya Mesaj geleck" MyObject.Attachfile "c:\logo.jpg", "logo.jpg",1 MyObject.Send Set MyObject=Nothing %> | |
| idalan | 22.07.2004 - 16:25:09 |
| Asp ile mail göndermek için öncelikle server ınızda bir mail Component yüklü olmasılazım mesela en çok kullanılan asp mail
Set Mail = Server.CreateObject("Persits.MailSender") Mail.Host = "smtp.doruk.net.tr" Mail.From = "gonderen@xxx.com" (E-posta Gönderen) Mail.FromName = "Gönderen kişinin adı" Mail.AddAddress "alan@xxx.com" (E-posta Alıcısı) Mail.AddCc "alanCc@xxx.com" (E-posta Cc) Mail.AddBcc "alanBcc@xxx.com" (E-posta Bcc) Mail.AddAttachment Server.MapPath("dosyalar/dosyam.txt") (E-posta içinde bir dosya göndermek istiyorsanız dosyanın dosya yolunu doğru belirtmeniz gerekiyor) Mail.Subject = "E-posta Konusu" Mail.IsHTML = True (Text gönderi için False olarak set edilmeli) Mail.Body = "Merhaba,<br>Bu benim ilk mailim" On Error Resume Next Mail.Send If Err <> 0 Then Response.Write "Bir Hata Oluştu: " & Err.Description End If | |
| idalan | 22.07.2004 - 16:26:39 |
| yaw önce ben yazmıştım ne zamanlama ama sadettin | |
| sadettinpolat | 22.07.2004 - 16:30:59 |
yaw önce ben yazmıştım
:) | |
| eternity | 22.07.2004 - 16:41:33 |
| :) çok teşekkür ederim ama benim bu kodları çalıştırabilmem için önden ne kurmam lazım makineme bir de sanki başkasından geliyomuş gibi mail gönderilebilirmi böyle :? | |
| selm@n | 22.07.2004 - 17:03:55 |
| makinanıza bir şey kurmanıza gerek yok yukarıda arkadaşların verdiği kodlar ile gayet kolay bir şekilde kullabilirsiniz yanlız Web sitenizi host ettiğiniz firmadan hangi mail Componentleri yüklü olduğunu öğrenmelisiniz yukarıda iki Componente göre kodlar verilmiş iyi çalışmalar. | |
| eternity | 22.07.2004 - 17:14:39 |
| web server kendimize ait o yüzden sordum | |
| selm@n | 22.07.2004 - 17:18:46 |
| o zaman http://www.aspemail.com/index.html adresinden
aspemail.exe Version: 5.0.0.2 indirin ve IIS Component yükleyin iyi çalışmalar | |
| eternity | 22.07.2004 - 17:46:08 |
| Connection timed out. hatası veriyor ayrıca bir ayar daha yapılması gerekiyomu bir de gönderici mail hesabını serverda tanımlamam gerekiyormu yoksa her hangi bir adres yazabilirmiyim oraya | |
| sadettinpolat | 22.07.2004 - 17:58:52 |
| benim gönderdiğim kodda iss + smpt gerekli. program ekle kaldırdan bu iki bileşeni yüklediğiniz zaman sorunsuzca gönderebilmeniz lazım. | |
| selm@n | 22.07.2004 - 18:08:58 |
| hocam benim geçenlerde devletin bilgi edinme ile ilgili projede basitbir uygulama yapmıştım..işte kodlar.. serverımda mailasp var;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>TVS :: BİLGİ EDİNME</TITLE> <META http-equiv=Content-Type content="text/html; charset=iso-8859-9"> <META http-equiv=Copyright content="TVS Web-Programmer!"><LINK href="TVS BİLGİ EDİNME_dosyalar/main.css" type=text/css rel=STYLESHEET> <STYLE>TD { FONT-WEIGHT: bold; FONT-SIZE: 10px; font-face: Tahoma, Arial } INPUT { FONT-WEIGHT: bold; FONT-SIZE: 10px; font-face: Tahoma, Arial } </STYLE> <META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD> <BODY text=#003366 vLink=#003355 aLink=#ff0000 link=#003399 bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0"> <SCRIPT> function checkSubmit() { f = document.forms['form1']; var uyari = 'Formda bazı hatalar bulundu:\n\n'; var hatalar = ''; var i = f.eposta.value.indexOf("@"); var c = f.eposta.value.indexOf("."); if (f.adsoy.value == '') hatalar = hatalar + '- Başvuru sahibi adı ve soyadını yazmadınız.\n'; if (f.adres.value == '') hatalar = hatalar + '- Oturma yeri veya iş adresini yazmadınız.\n'; if (f.tc_kimlikno.value == '') hatalar = hatalar + '- T.C. kimlik numarasını yazmadınız.\n'; if (i<0 || i == 0 || c<0 || c == 0 || c == f.eposta.value.length-1) hatalar = hatalar + '- E-posta adresi hatalı\n'; if (f.belgeler.value == '') hatalar = hatalar + '- İstenen belgeler bölümünü doldurmadınız.\n'; if (hatalar != ''){ hatalar = uyari + hatalar; alert (hatalar); } else { f.submit(); } } </SCRIPT> <BR> <CENTER><A href="http://www.tuvesas.com.tr/"><IMG height=107 alt=Amblem src="TVS BİLGİ EDİNME_dosyalar/amblem.jpg" width=396 border=0><BR><BR><BR></A><A href="http://www.bilgiedinme.tuvesas.com.tr/"><IMG height=80 alt="BİLGİ EDİNME BÜROSU" src="TVS BİLGİ EDİNME_dosyalar/baslik.gif" width=600 vspace=4 border=0><BR></A><IMG height=3 alt=-------------------- src="TVS BİLGİ EDİNME_dosyalar/line.jpg" width=600 vspace=4><BR><BR> <TABLE cellSpacing=0 cellPadding=0 width=600 border=0> <TBODY> <TR> <TD vAlign=top align=left><FONT face=tahoma,arial color=#003366 size=2><IMG height=18 src="TVS BİLGİ EDİNME_dosyalar/ok_m.gif" width=18 border=0> <B>Başvuru Formları</B><BR><BR> <DIV align=center> <CENTER> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=2 cellPadding=0 width="91%" border=0> <FORM name=form1 action=gonder.asp method=post> <TBODY> <TR> <TD align=middle width="100%" colSpan=3><FONT color=maroon><B>BİLGİ EDİNME BAŞVURUSU FORMU<BR>(Gerçek Kişiler İçin)</B></FONT></TD></TR> <TR> <TD width="48%"> </TD> <TD width="2%"> </TD> <TD width="53%"> </TD></TR> <TR> <TD width="48%">Başvuru sahibinin adı ve soyadı</TD> <TD width="2%">:</TD> <TD width="53%"> <INPUT id=adsoy name=adsoy size="20"> </TD></TR> <TR> <TD width="48%">Oturma yeri veya İş adresi</TD> <TD width="2%">:</TD> <TD width="53%"> <INPUT id=adres name=adres size="20"> </TD></TR> <TR> <TD width="48%"><B>T.C. Kimlik Numarası</B></SPAN></TD> <TD width="2%">:</TD> <TD width="53%"> <INPUT id=tc_kimlikno name=tc_kimlikno size="20"></TD></TR> <TR> <TD width="48%">E<B>-posta adresi</B></TD> <TD width="2%">:</TD> <TD width="53%"> <INPUT name=eposta size="20"></TD></TR> <TR> <TD width="48%"><B>Başvuruya hangi yolla cevap almak istersiniz?</B></TD> <TD vAlign=center width="2%">:</TD> <TD vAlign=center width="53%"> Elektronik <INPUT type=radio CHECKED value=elektronik name=cevap> Yazılı <INPUT type=radio value=yazili name=cevap></TD></TR> <TR> <TD vAlign=top width="48%">İstenen bilgi ve belgeler</TD> <TD vAlign=top width="2%">:</TD> <TD vAlign=top width="53%"> <TEXTAREA name=belgeler rows=4 cols="20"></TEXTAREA></TD></TR> <TR> <TD vAlign=top width="103%" colSpan=3> <P align=right>4982 sayılı Bilgi Edinme Hakkı Kanunu gereğince istediğim bilgi veya belgeler yukarıda belirtilmiştir.<BR>Gereğini arz ederim.</P></TD></TR> <TR> <TD vAlign=top width="48%"> </TD> <TD vAlign=top width="2%"> </TD> <TD vAlign=top width="53%"> </TD></TR> <TR> <TD vAlign=top width="48%"> </TD> <TD vAlign=top width="55%" colSpan=2><INPUT id=gonder accessKey=s onclick="Javascript: checkSubmit();" type=button value=Gönder name=gonder></TD></TR></TBODY></TABLE></CENTER></DIV> <P align=center><SMALL>Başvurunuzu yazılı şekilde yapmak için gerekli formu <A href="http://www.tuvasas.com.tr/bilgi/gkw.doc">buraya tıklayarak</A> edinebilirsiniz.<BR></SMALL></P></FONT><IMG height=3 alt=-------------------- src="TVS BİLGİ EDİNME_dosyalar/line.jpg" width=600 vspace=6><BR><A href="http://www.tuvasas.com.tr/bilgi/TVSf.htm"><IMG onmouseover=this.filters.alpha.opacity=60 style="FILTER: alpha(opacity=100)" onmouseout=this.filters.alpha.opacity=100 height=31 alt=Geri src="TVS BİLGİ EDİNME_dosyalar/geri.gif" width=32 align=left vspace=4 border=0></A> </TD></FORM></TR></TBODY></TABLE> </CENTER></BODY></HTML> yukarı daki kodları a.htm diye kayıt edelim <%@ Language=VBScript %> <% Dim strad,stradres,strtckimlikno,streposta,strcevap,strbelgeler '------------- FORMDAN GELEN BILGILERI ALIYORUZ strad=trim(Request.Form("adsoy")) stradres=trim(Request.Form("adres")) strtckimlikno=trim(Request.Form("tc_kimlikno")) streposta=trim(Request.Form("eposta")) strcevap=trim(Request.Form("cevap")) strbelgeler=trim(Request.Form("belgeler")) '------------- BILGILER YUKARIDA SAKLANDI '------------- KENDIMIZE AIT BILGILERI YAZIYORUZ Dim Alici_Adi,Alici_Emaili,Konu,Kayitli_Email_Adresim,Eksik_Bilgi,Gonderildi '------------- Not: Lütfen sadece çift tirnak içerisindeki bilgileri degistiriniz. Alici_Adi="admin@tuvasas.com.tr" Alici_Emaili="admin@tuvasas.com.tr" Konu="Website İletişim Formu" Kayitli_Email_Adresim="admin@tuvasas.com.tr" 'Buradaki email kendi domaininize ait olmak zorundadir. Eksik_Bilgi="Bilgileriniz Yetersiz Lütfen Formu Doldurmak icin Geri Dönünüz." Gonderildi="Formu Doldurduğunuz için tesekkür ederiz." '------------- ASAGIDAKI BILGILERI DEGISTIRMEYINIZ -------------- IF trim(Request.Form("adsoy"))<>"" THEN Dim Mail Set Mail = Server.CreateObject("Persits.MailSender") Mail.Host = "smtp.doruk.net.tr" 'Degistirmeyiniz !!! Mail.MailFrom = Kayitli_Email_Adresim Mail.From = streposta Mail.FromName = strad Mail.AddAddress Alici_Emaili, Alici_Adi Mail.AddReplyTo strad Mail.isHTML = True Mail.Subject = Konu Mail.Body = "<font face='verdana' size='3'>" & strad & "<br><br> Adres : "& stradres & " <br> TC KimlikNo : "& strtckimlikno & " <br> E-Mail Adresi : "& streposta & " <br> Cevap : "& strcevap & " <br> İstenilen Belgeler : "& strbelgeler & "</font><br>" On Error Resume Next Mail.Send If Err <> 0 Then Response.Write "Error encountered: " & Err.Description End If Response.Write("<font face='verdana' size='2' color=red>"&Gonderildi&"</font>") ELSE Response.Write("<font face='verdana' size='2' color=red><a href='javascript:history.go(-1)'>"&Eksik_Bilgi&"</font></a>") END IF '################################################################## %> bunuda gonder.asp diye kayıt edelim hepsi bu kadar.... mail hesabını serverda tanıtman gerekmiyor.. iyi çalışmalar | |
| eternity | 22.07.2004 - 18:39:07 |
| çok ilginç bende aynı uygulama için arıyorum :) | |
| selm@n | 23.07.2004 - 14:06:00 |
| hocam gonderdiğiniz mail adresi neydi mesela yahoo hotmail gibi birşeyse
olmaması normal eğer normal bir ISS ten veya hostan aldığınız bir mail olabilir ben hiç kendi IIS ime aspmail kurarak denemedim ama şimdi kuracağım ve oradan deniyeceğim iyi çalışmalar... | |
| eternity | 23.07.2004 - 17:25:36 |
| geçerli bir mail adresi yazdım ama Connection timed out hatası alıyorum. O yüzden merak ettim gönderen mail adresi web serverda tanımlı olmak zorundamı | |
| selm@n | 23.07.2004 - 17:31:00 |
| hocam firewall varmı sistemde belki bazı portları open edemiyordur... | |
| eternity | 23.07.2004 - 17:58:33 |
| geçerli mail adresi ve o serverın adını yazdığımda 550 Mailbox unavailable hatası veriyor bu | |
| selm@n | 23.07.2004 - 18:10:31 |
| hacam hiç karşılaşmadığım bir sorun ama SMTP server'ın konfigrasyonu ile ilgili olabilir.
http://www.aspemail.com/manual_01.html adresinde kurulum ve SMTP ile bilgiler var ufak bir proje yapıp localde denemek lazım... | |
| doganzorlu | 04.08.2004 - 14:09:37 |
| Selam,
geçerli mail adresi ve o serverın adını yazdığımda 550 Mailbox unavailable hatası veriyor bu
Aldığınız bu hata alıcı adresinin MX kaydında verilen SMTP sunucusunun, local posta kutusunun olmadığıyla ilgili bilgilendirmesidir. Örneğin dns kaydı aşağıdaki gibi bir domaine mail atıyorsunuz. Alıcı: bbb@aaa.com.tr ; ; <<>> DiG 9.2.1 <<>> aaa.com.tr MX ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41870 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1 ;; QUESTION SECTION: ;aaa.com.tr. IN MX ;; ANSWER SECTION: aaa.com.tr. 10800 IN MX 10 mail.aaa.com.tr. mail.aaa.com.tr. 10800 IN A xxx.xxx.xxx.xxx ;; AUTHORITY SECTION: aaa.com.tr. 10800 IN NS ns1.aaa.com.tr. ;; Query time: 27 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Aug 4 14:16:26 2004 ;; MSG SIZE rcvd: 133 Sizin kodun çalıştığı sunucudaki smpt server öncelikle aaa.com.tr domaininin mail server ının adresini arayacaktır. Yukardaki gibi bir query sonucunda xxx.xxx.xxx.xxx adresini bulacaktır. Daha sonra o sunucuya posta kutularından bbb ye bir mail gonderilecegi bildirilecektir ve eğer yoksa 550 gelecektir. Sizin makinanızdaki SMTP sunucunun isteğinizi relay ettiği durumdur ki kod içinden dönen bilgi size gelmez. Bu konfigürasyonun çalışması için iis admin panelden scriptin çalıştığı makinaya smtp servisi güvenlik ayarlarından relay yetkilerinin verilmesi gerekir. Dikkatli olunması gerekir yoksa net üzerinden sizin smtp sunucuyu spam için kullanmakta hiç gecikmeyeceklerdir. Fakat alıcı adresi olarak bbb@aaa.com.tr yerine sadece aaa verirseniz, scriptin çalıştığı makinadaki SMTP doğrudan muhatap olacağından script e 550 mesajı geri gelecektir. Düşüncem odur ki, kodunuzda verdiğiniz alıcı e-mail adresi scriptin çalıştığı makinayı gösteriyor ve o makinada o hesap yok. Bu bir kodlama hatası olabileceği gibi, sizin bilerek verdiğiniz birşey de olabilir. ----------------------- Uzun uzun yazıyorum kusura bakmayın ama sistemin nasıl çalıştığını da buradan birazcık vermek yararlı olur diye düşünüyorum. Daha detaylı bilgi için RFC 821 ve 2821 i inceleyebilirsiniz. | |