我最近将我的ASP.Net网站从传统的Windows 2003共享服务器迁移到Azure作为Web应用程序。我的VBScript表单发送电子邮件给我已经停止工作,因为迁移。我已经尝试了几种不同的方法来让我的VBScript电子邮件代码工作,但到目前为止没有运气。部分问题是我看不到错误是什么。
我的问题的第一部分是:我如何使我的VBScript ASP页面上的ASP.Net错误可见?我已经在我的web.config中设置了debug='true',我试图在我的ASP页面上设置它(见下文),但这并不起作用。目前,我只是在尝试发送电子邮件后得到一个'内部错误500'页面,没有任何错误的指示。
下面是发送电子邮件的代码,似乎是问题的根源。我可以在不重写整个C#页面的情况下将其更改为在Azure下工作吗?
<%@ Language=VBScript Debug='true' %> 'Debug=true doesn't work
Set Mailer = Server.CreateObject("Persits.MailSender")
Mailer.Host = "mail.mydomain.com" ' Specify a valid SMTP server
Mailer.From = Request.Form("AgentEmail") ' Specify sender's address
Mailer.FromName = Request.Form("AgentsName") ' Specify sender's name
Mailer.Port = 587
Mailer.isHTML = True
Mailer.AddAddress "[email protected]"
Mailer.AddAddress "[email protected]"
Mailer.AddAddress "[email protected]"
Mailer.AddAddress Request.Form("AgentEmail")
Mailer.Body = "stuff in my email"
Mailer.Username = "me@emailcom"
Mailer.Password = "123456"
On Error Resume Next
Mailer.Send
If Err <> 0 Then
Response.Write "Error encountered: " & Err.Description
Else
Response.Write "Success"
End If
字符串
这段代码在我的旧Windows服务器上运行正常,我省略了所有的HTML,因为这部分看起来运行得很好。
3条答案
按热度按时间ycl3bljg1#
Azure云服务
注:As of 2023, Azure Cloud Services is now obsolete and will be discontinued shortly。
假设您使用的是 *Azure云服务 * 的 *Web角色 *(并且不是Azure VM或 *Azure应用程序服务 *(以前称为 *Azure网站 *)),您可以使用经典ASP,前提是您需要跳过一些限制:https://khailiangtech.wordpress.com/2011/06/03/windows-azure-how-to-enable-classic-asp-support/
1.在Visual Studio中打开云服务解决方案
1.打开
.csdef
文件。1.将此
<WebRole><Startup><Task>
元素添加到XML中:字符串
Windows Azure似乎支持CDO(内置的COM SMTP服务),而您的代码使用的是
Persits.MailSender
-可能可以通过<ServiceDefinition>
XML安装Persits.MailSender
组件-但我不建议这样做,因为32/64位的问题。我建议您更改脚本以使用CDO,这里有一个参考:http://theholmesoffice.com/using-sendgrid-with-classic-asp-to-send-emails/(该页面用于使用SendGrid的SMTP服务器,但您可以使用任何SMTP服务器(只是不要使用端口25)。
适用于Azure应用服务(Azure网站)
According to the Azure Blog, Azure App Services does not support Classic ASP anymore, but it can work in a Docker-based application - based on this Docker template on GitHub。
不幸的是,所涉及的代码量太长,无法发布到这个SO答案。
efzxgjgh2#
您正在尝试从未安装的DLL示例化对象:
Server.CreateObject("Persits.MailSender")
使用Web Apps时,您无法安装任何外部COM对象。一个选项是使用虚拟机并安装COM DLL。
iqxoj9l93#
为了将来的参考,我最终通过将代码转换为C#并使用to smtpClient来解决我的问题。这是这里的总体思路:
字符串