2016-05-10 21 views
0

私はアプリケーションで動作する古典的なASPの初心者です。電子メールで添付ファイルを送信する必要があります。私は非常に多くのことを試みましたが、まだ適切な解決策を見つけることができませんでした。私は添付ファイルなしでメールを送信することができます。古典的なASPを使用して複数の添付ファイルを持つメール

添付ファイル以外はすべて正常に動作しています。添付ファイルを送信する前に、ファイルをサーバーにアップロードする必要があるという多くの解決策を見てきました。私はページをuploaddocument.asp(このページはVBscriptにあります)という形式のアクションで呼びました。これは、文書をアップロードしているにもかかわらず、メールを送信していない状態で、サーバー上の文書をアップロードしています。

添付ファイルを一時フォルダに保存して送信後に自動的に削除されるようにする方法があるかどうかをご確認ください。

yahoomailやgmailのような添付ファイルの機能をプログレスバーで設定することはできますか?従来のasp javascript/VBscriptを使用して添付ファイルを削除するオプションがありますか?

ダミーコードを見つけてください。

MailTest.asp私は添付ファイルとしてアップロードされたファイルを送信するにはどうすればよい

<%@ Language=JavaScript%> 
<% 
Server.ScriptTimeout = 900; 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
function mailObject() 
{ 
var mailObject = new ActiveXObject("CDO.Message"); 
mailObject.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2; 

mailObject.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtprelay.p3chem.net"; 
mailObject.Configuration.Fields.Update(); 


mailObject.From = "[email protected]"; 

return (mailObject); 
} 


var mailMessage = new mailObject(); 
messageText = "Test"; 
emailID="[email protected]"; 
AssetmailID ="[email protected]"; 
messageSubject ="test"; 
var op = String(Request("op")); 

%> 

<% 

Response.write("<form method ='Post' action ='UploadDocument.asp' enctype='multipart/form-data'> \n"); 

Response.write("\n\nRecipient(s): 
<textarea name=to rows=3 >"+emailID+"</textarea>* 
\n\ 
(list of email addresses, separated by semicolon) 

\n"); 
Response.write("\n\nCc: 
<textarea name=cc rows=2 >" + AssetmailID + "</textarea> 
\n\ 
(list of email addresses, separated by semicolon) 

\n"); 
Response.write("Subject: 
<input type=text name=subject size=60 >* 

\n"); 

Response.write("Message: 
<textarea name=message rows=15 cols=100 >" + messageText + "</textarea>* 

\n"); 

Response.write("<form id = form2 method ='Post' action ='UploadDocument.asp' enctype='multipart/form-data'> \n"); 
Response.write("Attachment 1 : <input type=file name=File1>") ; 


Response.write(" 
<Input Type=Button Value='Add a file' > 
") ; 

Response.write("</form>\n"); 

Response.write("<input type=submit name=send value='Send Message'> 

\n"); 
Response.write("<input type=hidden name=op value=send>"); 

Response.write("</form>\n"); 

switch (op) { 
case ("Select"): 
case ("send"): 


try { 
mailMessage.to =emailID; 
mailMessage.Cc= AssetmailID 
mailMessage.Bcc = "vikrant.mittalMNC.com"; 

mailMessage.From = "[email protected]"; 
mailMessage.Subject = String(Request("subject")); 
mailMessage.HtmlBody = String(Request("message")); 


mailMessage.Send(); 
Response.Write("<script language='javascript'>alert('Mail successfully sent')</script>"); 
Response.Write("\nMail has been sent successfully "); 

} 
catch (err) { 
Response.Write(err.message); 

mailMessage.Bcc = ""; 

mailMessage.From = ""; 
mailMessage.Subject = String(Request("subject")); 
mailMessage.HtmlBody = "ERROR: Mail was not sent succesfully, Check whether All Mail ID's are Valid."; 
mailMessage.Send(); 
Response.Write("<script language='javascript'>alert('Mail was not sent succesfully')</script>"); 

Response.Write("Mail was not sent succesfully, Check whether All Mail ID's are Valid.\n\n" + Assessors); 
} 
break; 
default: 
Response.write ("Done"); 
} 


%> 


<Script> 
//Script To add a attachment file field 
var nfiles = 1; 
function Expand() 
{ 
nfiles++ 
var adh = ' 
Attachment '+nfiles+' : <input type="file" name="File'+nfiles+'" action ="UploadDocument.asp" enctype="multipart/form-data">'; 
files.insertAdjacentHTML('beforeend',adh); 
return false; 
} 
</Script> 

code of UploadDocument.asp 


<% @ Language= VBScript%> 
<%Option Explicit%> 
<html> 
<body> 
<!-- #include file="lib\lib_vbFunctions.asp" --> 
<% 
Server.ScriptTimeout = 900 

Dim Uploader, File, startTime, endTime, markTime1, totalTime, uploadTime, encType 
Set Uploader = New FileUploader 
startTime = Time 
' This starts the upload process 
Uploader.Upload() 
markTime1 = Time 
' Check if any files were uploaded 
If Uploader.Files.Count = 0 Then 
Response.Write "File(s) not uploaded." 
Else 
' Loop through the uploaded files 
For Each File In Uploader.Files.Items 
encType = File.ContentType 
If (Len(encType) >= 50) Then encType = "application/octet-stream" 
File.ADOSaveToDisk "F:\\CSDATA\\My_attachment",File.FileName 
endTime = Time 
totalTime = (endTime - startTime) * 10000000 
uploadTime = (markTime1 - startTime) * 10000000 
' Output the file details to the browser 
Response.Write "File Uploaded: " & File.FileName & " 
" 
Response.Write "Size: " & File.FileSize & " bytes 
" 

Next 
END if 
%> 
</body> 
</html> 

答えて

0

これは私がWYSIWYGで、サーバー上のファイルをアップロードするために使用トリックです:

  1. は、電子メールの形式で添付ファイルの名前の入力フィールドを検討してください。
  2. この入力の横にある偽のボタンを押して、[参照]をクリックします。
  3. 偽のボタンをクリックすると、ドキュメント内の他の隠れた書式のクリックをシミュレートできます。この2番目の形式は、ファイルをアップローダに送信し、アップローダからファイル名を受信します。 2番目のフォームの提出を防ぎ、ページをリフレッシュするには、Jquery.form.jsを使用してファイルをアップロードし、onSuccessアップロードしたFileNameを添付ファイルという名前の実際の入力に渡します。

実メールフォーム:

<form id="hiddenForm" action="File-Uploader.asp" enctype="multipart/form-data" method="post" accept-charset="utf-8"> 
    <input name="file1" id="hiddenFileField" type="file"> 
</form> 

、これはプロセスを処理するためのスクリプトです:

サーバー上のファイルをアップロード

<form action="sendEmail.asp" method="post"> 
    <input name="attachment"><a onclick="$('#hiddenFileField').click()">Browse</a> 
    <!--other fields of email form--> 
</form> 

隠しフォーム

$(document).ready(function(){ 
    $('#hiddenForm').ajaxForm({ 

     beforeSubmit: function() { 
     $("#stat").html('uploading...'); 
     }, 

     success: function(data) { 
      $("#attachment").val(data); 
      $("#stat").html(""); 
     } 
    }); 

    // The code to submit hidden form as soon as file selected to upload: 
    $("#hiddenFileFild").change(function(){$("#hiddenForm").submit();}) 

}); 

#statusを使用してアップロードを完了する前にmainを送信しないようにコードを変更することができます。

最後に、あなたがメールを送信した後、一時ファイルを削除することができます:あなたは、単にファイルアップローダーを説明

<% 
dim fs 
dim file 
file=server.mappath(request.form("attachment"))) 
Set fs=Server.CreateObject("Scripting.FileSystemObject") 
if fs.FileExists(file) then 
    fs.DeleteFile(file) 
end if 
%> 
+0

が、それはOPが求めていたものではなかった、ファイルアップロードは、それのほんの一部です。 – Lankymart

関連する問題