2011-09-15 16 views
1

私はPHPの開発者です。ASPについては知りません。残念ながら私はここで唯一の開発者であり、クライアントにASPASP.NETではなく)ページがあり、彼らは「お問い合わせ」フォームを希望していました。ASPXからASPへの変換(電子メールスクリプト)?

ASPのファイルをApacheに配信する方法をインターネットで検索したところ、mod_aspdotnetというメッセージが表示されました。 ASPASP.NETと同じだと私は思っていました。今あなたは私の問題を見ますか?私はASP.NETの電子メールスクリプトを開発しました。ファイルには.aspxの拡張機能が含まれていましたが、実際のサイトには.aspという拡張子があり、ASPで、ASP.NETではありませんでした。

ですから、私は助けを求めたいと思います。これは私の電子メールスクリプトです:

<%@ Page Language="VB" Debug="true" %> 
<%@Import Namespace="System.Web.Mail" %> 
<script language="vb" runat="server"> 

Sub Send2Mail (sender as Object, e as EventArgs) 

    Dim objMail as New MailMessage() 

    if Logo.HasFile Then 
     Try 
      Logo.SaveAs(Server.MapPath("uploads/") + Request.form("strName") + "_Logo_" + Logo.FileName) 
      objMail.Attachments.Add(new MailAttachment(Server.MapPath("uploads/" + Request.form("strName") + "_Logo_" + Logo.FileName))) 
     Catch ex As Exception 
      msg.Text = "<b>The Logo could not be uploaded</b>. The following error occured: <i>" + ex.Message + "</i><br />" 
      msg.Visible = true 
     end try 
    end if 

    if Image1.HasFile Then 
     Try 
      Image1.SaveAs(Server.MapPath("uploads/") + Request.form("strName") + "_Image1_" + Image1.FileName) 
      objMail.Attachments.Add(new MailAttachment(Server.MapPath("uploads/" + Request.form("strName") + "_Image1_" + Image1.FileName))) 
     Catch ex As Exception 
      msg.Text = "Image 1 could not be uploaded. The following error occured: <i>" + ex.Message + "</i><br />" 
      msg.Visible = true 
     end try 
    end if 

    if Image2.HasFile Then 
     Try 
      Image2.SaveAs(Server.MapPath("uploads/") + Request.form("strName") + "_Image2_" + Image2.FileName) 
      objMail.Attachments.Add(new MailAttachment(Server.MapPath("uploads/" + Request.form("strName") + "_Image2_" + Image2.FileName))) 
     Catch ex As Exception 
      msg.Text = "Image 2 could not be uploaded. The following error occured: <i>" + ex.Message + "</i><br />" 
      msg.Visible = true 
     end try 
    end if 


    objMail.To = "[email protected]" 
    objMail.From = """Us"" <[email protected]>" 

    objMail.BodyFormat = MailFormat.Html 
    objMail.Priority = MailPriority.Normal 
    objMail.Subject = "Business Registration" 

    objMail.Body = "<html><body style='font-family: Verdana'><table style='font-family: Verdana; font-size: 11px'>" 
    objMail.Body += "<tr><td><b>Business Name:</b></td><td>" + Request.form("strName") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Opening Business Description:</b></td><td>" + Request.form("strOpenDesc") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Opening Hours:</b></td><td>" + Request.form("strHours") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Business Description:</b></td><td>" + Request.form("strBusDesc") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Servicing Area:</b></td><td>" + Request.form("strService") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Website Address:</b></td><td>" + Request.form("strWebsite") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Email Address:</b></td><td>" + Request.form("strEmail") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Telephone Number:</b></td><td>" + Request.form("strPhone") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Fax Number:</b></td><td>" + Request.form("strFax") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Mobile Phone Number:</b></td><td>" + Request.form("strMobile") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Suburb/Post Code:</b></td><td>" + Request.form("strPostCode") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Proprietor Name:</b></td><td>" + Request.form("strPropName") + "</td></tr>" 
    objMail.Body += "<tr><td><br /></td></tr>" 
    objMail.Body += "<tr><td><b>Image 1 Caption:</b></td><td>" + Request.form("strImage1Caption") + "</td></tr>" 
    objMail.Body += "<tr><td><b>Image 2 Caption:</b></td><td>" + Request.form("strImage2Caption") + "</td></tr>" 
    objMail.Body += "</table><body></html>" 

    SmtpMail.SmtpServer = "localhost" 

    Try 
     SmtpMail.Send(objMail) 
     strMessage.Visible = true 
    Catch ex As Exception 
     msg.Text = "<b>The message was not sent</b>. The following error occured: <i>" + ex.Message + "</i><br />" 
     msg.Visible = true 
    End Try 

End Sub 

これはASPのとおりですか? ASPで動作させるためには何を変更する必要がありますか?私も<asp:></asp:>タグを使用しています。これはASPで動作しますか?

EDIT

私は、私が開発し、ホストサーバ用に使用していますどのようなサーバーの混乱のために申し訳ありません。ホストはIISを使用しています。私は本当にPHP開発者であるため、私はApacheを使用しています。 ApacheでASPページを実行する際の問題は、クライアントがサーバーへのアクセス権を与えたくないためです。彼らは私にただファイルを渡すべきだと私に言った。

答えて

2

ASPASP.NET共有純粋なマーケティング上の理由の名前が、それらは、基本的に無関係な技術です。

両方のASPでは、サポートされているプログラミング言語を選択してスクリプトをコード化する必要があります。サンプルコードは、従来のASPではサポートされていないVisualBasicを使用しているようです。たとえば、VBScriptに切り替える必要があります。 VisualBasicとは異なり、VBScriptは緩やかに型付けされていますが、それと似た構文をしています。

電子メールを送信する従来のASP方法はCDONTS libraryです。簡単な例:

一般的に、古典的なASPは、PHPと非常によく似ています.HTMLドキュメントにコードを埋め込みます。

難しい部分はファイルのアップロード処理です。 ASPにはネイティブのファイルアップロード機能がありませんでした。バイナリの商用ライブラリを購入してインストールするか、インターネットで入手可能なVBScript専用のコードスニペットを見つけなければなりませんでした。

編集:クライアントは実際にApache経由でASPを実行していますか? MicrosoftはIISのみをサポートしています。 ASP用のApacheモジュールは、通常、第三者によって書かれたものであり、多くの場合、Perlのような異なる言語で実装されていました。

1

ASP(または現在知られているClassic ASP)とASP.NETは異なる獣です。最初のスクリプト言語はPHPに似ていますが、ASP.NETは.NET Frameworkを使用し、.NETアセンブリとして実行またはアップロードされる前にMSILバイナリにコンパイルされます。また、ページにインラインスクリプトが含まれている場合はIISによって即時にコンパイルされますいずれにしても、.NETフレームワークの中核をなすCLR(共通言語ランタイム)によって実行されます。

一部のVB.NETコードはVBScript(最も一般的に使用されるClassic ASP言語)に変換される可能性がありますが、Microsoft.VisualBasic名前空間以外の.NETフレームワークの一部を使用するものは使用できません。この種の機能にアクセスするには、サードパーティのActiveX/COMコンポーネントを使用する必要があります。

あなたはIISサーバーへのアクセス権がないため、または既にApache上で実行されているこのサイトがないため、ASP上でASPスクリプトを提供したいとしますか?私が知っている限り、ApacheでClassic ASPを実行する唯一の方法は、Apache用のChilliSoft/SunOne ASPを使用することです。いくつかのホスティング企業がこれを提供していますが、それは従来の製品です。

ChilliSoft ASPを実行している場合、ホストがSpicePackをインストールしている場合、インストール可能なメールコンポーネントがあります。詳細については、このを見てみましょう:

http://developers.sun.com/asp/howto/chilimail.html

http://ns7.webmasters.com/caspdoc/pdf/chilisoft_asp_docs.pdf

私はChilliSoft ASPを使用してApacheにIISから移植され、多くのASPアプリケーションをしましたし、一般的に、それは非常によく動作します。

は、ASPを使用して電子メールを送信する方法についての一つの方法については、この答えを見てください:Sending Mail code in ASP

は、他のすべてを失敗すると、ちょうどそれに投稿する自分自身にPHPでメールを送信するためのページを追加し、お問い合わせフォームを取得そのページをシームレスに表示するには、ASPページにリダイレクトします。後者は、(例えば、言語依存しないフレームワークであるとして)の概念、さらにいくつかのメソッド名を(例えばServer.MapPathなど)再利用が

+0

まあ、クライアントにはすでにホストがあります。このサイトは既に公開されており、Contactフォームを追加したいと考えていました。彼らは私にホストへのアクセスを与えたくありません!彼らは私がファイルを配信し、それをホストにアップロードするべきだと彼らは言った。だから私は、私が実際に自分のコードで多くの変更をする必要はないと誰かから教えてくれることを期待していたのです。しかし、私はそうは思わない。 * Sigh * –

+0

私はHTTPヘッダーをスキャンしました。これは 'Server:Microsoft-IIS/6.0'と' X-Powered-By:ASP.NET'です。それは彼らが 'ASP> NET'を実行していることを意味しますが、ファイル拡張子は' .asp'ですか? –

+0

@Rolando - おそらくサーバーが*両方を実行できることを意味します。 –