【问题标题】:Sending Mail code in ASP在 ASP 中发送邮件代码
【发布时间】:2011-12-01 10:47:25
【问题描述】:

我已经给出了一个 HTML 文件。当有人填写表格并发送时,它应该向他们的邮件 ID 发送电子邮件。如何在 ASP 中为此编写代码?

您的姓名:* 电子邮件:* 电话号码: 您的留言:*
  • 格纳尼亚尔祖拜尔

【问题讨论】:

    标签: email asp-classic


    【解决方案1】:

    像这样使用 CDOSYS:-

    Dim oMsg : Set oMsg = CreateObject("CDO.Message")
    
    oMsg.From = "Me <me@mymail.myserver.com>"
    oMsg.To = "Bloke <bloke@somewere.com>"
    oMsg.Subject = "Test"
    oMsg.HTMLBody = "<html><body>Hello World</body></html>"
    
    oMsg.Send
    

    当然,您需要从存储用户个人资料的某个持久性存储中获取“收件人”字段,并从发布的字段中提供正文的主题和部分。

    您还需要在 IIS 应用程序上配置邮件设置,以便为 CDO.Message 对象提供默认配置。如果您需要使用以下功能自己配置邮件设置,则失败:-

    Function GetConfiguration()
        Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
        Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
        Const cdoSMTPServerPickupDirectory = "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory"
        Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
    
        Const cdoSendUsingPickup = 1
        Const cdoSendUsingPort = 2
    
        Dim GetConfiguration : SetGetConfiguration = CreateObject("CDO.Configuration")
    
        With GetConfiguration.Fields
            .Item(cdoSendUsingMethod) = cdoSendUsingPort
            .Item(cdoSMTPServer) = "mysmtp.myserver.com"
            .Item(cdoSMTPServerPort) = 25
            .Update
        End With
    
    End Function
    

    然后在调用send之前将此行添加到代码主体中:-

    Set oMsg.Configuration = GetConfiguration()
    

    只需调整 GetConfiguration 内容以使用您的 SMTP 服务器主机名。

    注意不要使用已弃用的 CDONTS。

    【讨论】:

    • 没错,在 Windows 2003 和 2008 中,CDONTS.dll 不再可用。 CDO.sys 方法适用于 Windows 2000 及更高版本。
    【解决方案2】:

    我假设你使用的是 ASP 3.0,你可以使用 Cdonts.dll

    代码:

    cBody = Request.Form("Body") 
    cPara = = Request.Form("to") 
    
    <%@ Language=VBScript%> 
    <html> 
    
    <head> 
       <title>Email Sending</title> 
    
    </head> 
    <body>
    <% 
    Dim cBody, n 
    
    For Each n In Request.Form 
        cBody = cBody & n & ": " & Request.Form(n) & chr(13) 
    Next 
    
    Set oCDO = Server.CreateObject("CDONTS.NewMail") 
    
    oCDO.From = "fernan@tudominio.com" 
    oCDO.To = "foc@tudominio.com" 
    oCDO.Subject = "Subject" 
    oCDO.Body = cBody 
    'oCDO.Cc = "resal@tudominio.com;webmaster@tudominio.com" 
    oCDO.Bcc = "quinqui@tudominio.com" 
    'oCDO.MailFormat = 0 
    
    oCDO.Send 
    
    Set oCDO = Nothing 
    Response.Write "¡Email Sent!!" 
    
    %> 
    </body> 
    </html> 
    

    【讨论】:

    • 嗨,MRFerocius,感谢您的即时回复。当用户点击提交按钮时,消息应该发送给管理员“contact@testing.com”而不是用户的邮件ID..如何写?请 cdlarify
    • 我想我不明白用户的身份。你能再解释一下吗?它是一个带有密钥/电子邮件地址的表格?如果是这样的话就很简单了。
    • 不,不是那样的。我的意思是,用户是填写表格的客户。它就像一个反馈表。当有人填写它时,应该将消息发送到某个静态电子邮件 ID,例如“contact@testing.com”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    相关资源
    最近更新 更多