ASP ile mail gönderme
eternity22.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 Rolling Eyes
 
sadettinpolat22.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
%>
 
idalan22.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

 
idalan22.07.2004 - 16:26:39
yaw önce ben yazmıştım ne zamanlama ama sadettin Shocked
 
sadettinpolat22.07.2004 - 16:30:59
yaw önce ben yazmıştım


:)
 
eternity22.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 Question

bir de sanki başkasından geliyomuş gibi mail gönderilebilirmi böyle :?
 
selm@n22.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.
 
eternity22.07.2004 - 17:14:39
web server kendimize ait o yüzden sordum
 
selm@n22.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
 
eternity22.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
 
sadettinpolat22.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@n22.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>&nbsp;&nbsp;<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%">&nbsp;</TD>
<TD width="2%">&nbsp;</TD>
<TD width="53%">&nbsp;</TD></TR>
<TR>
<TD width="48%">Başvuru sahibinin adı ve soyadı</TD>
<TD width="2%">:</TD>
<TD width="53%">&nbsp;<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%">&nbsp;<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%">&nbsp;<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%">&nbsp;<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%">&nbsp;Elektronik <INPUT type=radio
CHECKED value=elektronik name=cevap>&nbsp; Yazılı&nbsp; <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%">&nbsp;<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%">&nbsp;</TD>
<TD vAlign=top width="2%">&nbsp;</TD>
<TD vAlign=top width="53%">&nbsp;</TD></TR>
<TR>
<TD vAlign=top width="48%">&nbsp;</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>&nbsp; </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
 
eternity22.07.2004 - 18:39:07
çok ilginç bende aynı uygulama için arıyorum :)
 
selm@n23.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...
 
eternity23.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@n23.07.2004 - 17:31:00
hocam firewall varmı sistemde belki bazı portları open edemiyordur...
 
eternity23.07.2004 - 17:58:33
geçerli mail adresi ve o serverın adını yazdığımda 550 Mailbox unavailable hatası veriyor bu Crying or Very sad
 
selm@n23.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...
 
doganzorlu04.08.2004 - 14:09:37
Selam,

geçerli mail adresi ve o serverın adını yazdığımda 550 Mailbox unavailable hatası veriyor bu Crying or Very sad


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.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com