Birlikte çalışma veri nesneleri için Microsoft Windows NT Server (Active Server Pages (ASP) sayfalarından e-posta göndermek için CDONTS) kullanımını yaygın hale geldi. CDONTS, diğer teknolojileri ile birlikte kullanarak, kullanıcıların kendi e-posta ekleriyle sağlayan Web tabanlı bir arabirim oluşturabilirsiniz. Bu e-posta için önce dosya eki sunucuya gerekir; böylece CDONTS sunucuda yürütür.
Dosya karşıya yükleme, deftere nakil Microsoft Acceptor gerçekleştirilebilir. Deftere nakil Acceptor sunucuda yüklü ve bir dosya için Web sunucusu kullanıcının bilgisayarından deftere nakletmek bir istemci sağlar. Bu dosya, daha sonra e-posta iletilerine ek olarak gönderilebilir.
Not: Basit Posta Aktarım Protokolü (SMTP) hizmetinin etkin ve CDONTS kullanmak üzere yapılandırılmış gerekir. (Ayrıntılar için ınternet ınformation Services belgelerine bakın.)
Ileti için bir dosya ekleme adımları
- Microsoft Visual ınterdev Web sunucusunda yüklü deftere nakil Acceptor'ile myEmailWebApp adlı yeni bir Web uygulama proje oluşturun.
- Projeye default.asp adlı bir ASP sayfası ekleyin.
- Varsayılan olarak sayfa ile gelen kodu silin.
- Sayfasına aşağıdaki kodu ekleyin:
<%@ Language=VBScript %>
<HTML>
<HEAD>
<%
Dim strServerURL 'Server Name including http:// protocol
strServerURL = "http://" + Request.ServerVariables("SERVER_NAME")
Dim strServerURLFull 'Path to subweb directory
strServerURLFull = strServerURL & "/myEmailWebApp"
Dim strTargetURL 'Directory where we will upload our file to
strTargetURL = strServerURLFull & "/uploaded_files"
Dim strRepostURL 'Path to the page we will display after our file uploads
strRepostURL = strServerURLFull & "/SendMail.asp"
Dim strPathToPA 'Path to the cpshost.dll
strPathToPA = strServerURL & "/Scripts/cpshost.dll"
Dim strPostingURL 'Action path for our form
strPostingURL = strPathToPA + "?PUBLISH?" + strRepostURL
%>
</HEAD>
<BODY bgcolor="white">
<!--The Form must include the enctype properties set to "multipart/form-data" or the upload will fail. -->
<FORM enctype="multipart/form-data" action="<%=strPostingURL %>" method="post" id="form1" name="form1">
<INPUT type="hidden" name="TargetURL" value="<% = strTargetURL %>">
<!--This hidden field is used to determine if a file post is being made.-->
<INPUT type="hidden" name="bolAttach" value="true">
<CENTER>
<TABLE bgcolor=Gray border=1>
<tr>
<td>From:</td>
<!--Who is this message from.-->
<td><INPUT id="FromBox" name="FromBox" maxlength="50" value="myEmail@myDomain.com"></td>
<tr>
<tr>
<!--Who is this message To.-->
<td>To:</td>
<td><INPUT id="ToBox" name="ToBox" maxlength="50" value="myEmail@myDomain.com"></td>
<tr>
<tr>
<!--This message's Subject.-->
<td>Subject:</td>
<td><INPUT id="SubjectBox" name="SubjectBox" maxlength="50" value="Email with attachment.">
</td>
</tr>
<tr>
<!--This message's body.-->
<td colspan="2"><br><br>Message:<br>
<TEXTAREA cols="40" id="MessageArea" name="MessageArea" rows="10">Here is the text for this message.</TEXTAREA>
<br>
</td>
</tr>
<tr>
<td colspan="2" align="Left" valign="center">
Specify File Attachment Paths:
</td>
</tr>
<tr>
<!--Path to the file to attach to this message.-->
<td colspan="2" align="right" valign="center">
<INPUT name="my_file" type="file" size="20">
<br><br>
</td>
</tr>
<tr>
<!--This message's importance.-->
<td colspan="2" ><br>Importance Level:
<INPUT type="radio" id=optImpo name=optImpo value=0 checked>Low
<INPUT type="radio" id=optImpo name=optImpo value=1>Medium
<INPUT type="radio" id=optImpo name=optImpo value=2>High
<br></td>
<tr>
<tr>
<!--Validating Submit Button.-->
<td colspan="2" align="right" valign="center">
<INPUT type="button" value="Send" id="button1" name="button1" LANGUAGE="javascript" onclick="return button1_onclick()">
<INPUT type="reset" value="Reset" id="reset1" name="reset1">
</td>
</tr>
</TABLE>
</CENTER>
</FORM>
<SCRIPT ID="clientEventHandlersJS" LANGUAGE="javascript">
<!--
function button1_onclick() {
//Determine if there is a From address at all.
if(form1.FromBox.value =="")
{
//No from Address -Stop Submission
alert("You have not typed a From: Address.");
return;
}
//Determine if there is a To address at all.
if(form1.ToBox.value =="")
{
//No To Address -Stop Submission
alert("You have not typed a TO: Address.");
return;
}
//Determine if there is a subject at all.
if(form1.SubjectBox.value =="")
{
//No Subject - Question Submission
//Determine if they care.
var bolCancel = confirm("You have not typed a Subject continue?\n");
if(bolCancel==false)
{
//User clicked Cancel -Stop Submission
return;
}
}
if(form1.MessageArea.value =="")
{
//No Message - Question Submission
//Determine if they care.
var bolStop = confirm("You have not typed a Message continue?\n");
if(bolStop==false)
{
//User clicked Cancel -Stop Submission
return;
}
}
SubmitForm();
}
function SubmitForm()
{
//File counter for the number of files on the Form
var FileNumber = 0;
//FormMain is set to the form1 of the document
var FormMain = document.forms("form1");
//Loop counter
var i;
//Start at zero and loop until i is equal to the number of
//elements in the page. Step i +1 per loop through
for (i=0;i<FormMain.elements.length;i++)
{
if (FormMain.elements[i].name == 'my_file' && FormMain.elements[i].value.length > 0)
{
FileNumber++;
}
}
//If there are files being posted then send the file to the Posting Acceptor
//If not, skip to the send mail page with the Attachment boolean set to false.
if(FileNumber==0)
{
form1.bolAttach.value = "false"
form1.action = 'SendMail.asp';
//The encoding must be set to a different type in order to not
//use the posting acceptor.
form1.encoding = 'application/x-www-form-urlencoded';
form1.submit();
}
else
{
//There are files attached use normal submit.
form1.submit();
}
};
//-->
</SCRIPT>
</BODY>
</HTML> - Visual ınterdev Project Explorer <a1>Proje</a1> adını sağ tıklatın ve Yeni klasör açılır menüden seçin.
- Yeni klasörü Uploaded_files olarak adlandırın.
- ınternet Hizmet Yöneticisi konsolunu açın ve oluşturduğunuz Uploaded_files klasöre göz atın.
- Klasörü sağ tıklatın ve sonra da Özellikler ' i tıklatın.
- Dizin sekmesinde okuma/yazma izinleri seçin ve Tamam ' ı tıklatın.
- ınternet Services Manager'ı kapatın.
- Windows Gezgini'ni açın ve kök altındaki MyEmailWebApp klasörüne göz atın: \ınetpub\wwwroot dizinini.
- Uploaded_files klasörünü sağ tıklatın ve sonra da Özellikler ' i seçin.
- Güvenlik sekmesinde, ınternet guest hesabının klasör üzerinde okuma/yazma/değiştirme izinleri olduğundan emin olun.
- Tamam ' ı tıklatın ve sonra Windows Gezgini'ni kapatın.
- Visual ınterdev Web uygulamasını SendMail.asp adlı ikinci bir sayfa ekleyin.
- Varsayılan olarak sayfa ile gelen kodu silin.
- Sayfasına aşağıdaki kodu ekleyin:
<%@ Language=VBScript %>
<HTML>
<HEAD>
<TITLE>E-mail Sent Confirmation</TITLE>
</HEAD>
<BODY>
<HR>
<%
'Dim Message Variables
Dim objMsg, strFrom, strTo, strSubject,lngImportance
'Get the values to use with the message from the post.
strFrom = lcase(Trim(Request.Form("FromBox")))
strTo = lcase(Trim(Request.Form("ToBox")))
strSubject = Request.Form("SubjectBox")
lngImportance = CInt(Request.Form("optImpo"))
'Create the Message Object
Set objMsg = Server.CreateObject("CDONTS.NewMail")
'Set the properties of the Message
objMsg.From = strFrom
objMsg.To = strTo
objMsg.Subject = strSubject
'Use the actual Request Object so that you do not over load the string Data type.
objMsg.Body = Request.Form("MessageArea")
objMsg.Importance = lngImportance
'Determine if we need to attach a file.
Dim bolAttachmentPosted
bolAttachmentPosted = CBool(Request.Form("bolAttach"))
If bolAttachmentPosted Then
'If do then where on the server can we get it
FilePathOnServer= Server.MapPath("/myEmailWebApp/uploaded_files")
FilePath_Name = FilePathOnServer & "\" & Request.Form("FileName") & Request.Form("FileExtention")
'Attach it
objMsg.AttachFile FilePath_Name
End If
'Send Message
objMsg.Send
'Destroy the object
Set objMsg = Nothing
'Determine if there is a file on the server to delete.
If bolAttachmentPosted Then
Dim FSO
'Create a File System Object
Set FSO = server.CreateObject ("Scripting.FileSystemObject")
'Delete the file from the server
FSO.DeleteFile FilePath_Name
'Destroy the object
Set FSO = Nothing
End If
'Write out results
Response.Write "The following message was sent via CDO for NTS:" & "<br>"
Response.Write "From: " & strFrom & "<br>"
Response.Write "To: " & strTo & "<br>"
Response.Write "Subject: " & strSubject & "<br>"
Response.Write "Importance: " & lngImportance & "<br>"
Response.Write "Body: " & Request.Form("MessageArea") & "<br>"
%>
</BODY>
</HTML>
- Araç çubuğunda Tümünü Kaydet'i tıklatın.
- Default.asp dosyasını sağ tıklatın ve sonra View in Browser'ı seçin.
222618
(http://support.microsoft.com/kb/222618/EN-US/
)
ASP ya da kullanıcı adları Acceptor deftere nakil ile kullanma
260317
(http://support.microsoft.com/kb/260317/EN-US/
)
Uzak sunuculara yükle için deftere nakil Acceptor yapılandırma
189651
(http://support.microsoft.com/kb/189651/EN-US/
)
IIS bir tarayıcı kullanarak bir dosya yükleniyor
250384
(http://support.microsoft.com/kb/250384/EN-US/
)
Deftere nakil Acceptor AllowAnonymous Repost başarısızlığı Windows Yükle
186204
(http://support.microsoft.com/kb/186204/EN-US/
)
CDONTS toplama nasıl ve bir kullanıcının posta bilgileri
177850
(http://support.microsoft.com/kb/177850/EN-US/
)
BILGI: CDONTS ve CDO 1.2 arasındaki fark nedir?
189945
(http://support.microsoft.com/kb/189945/EN-US/
)
Nasıl yapılır: HTML Gönder posta CDONTS kullanarak SMTP biçimlendirilmiş.