簡體   English   中英

我如何通過代碼在asp.net中發送電子郵件

[英]how do I send emails in asp.net via code

我很難弄清楚如何通過asp.net網站,通過UKFasts Cloud Shared VPS上的注冊/在線域發送電子郵件。

我的網站和域名是在它們的一台Cloud / VPS服務器(例如www.mysite.co.uk)上通過UKFast托管的。 我的Web應用程序托管在專用服務器上(例如,www.mysite-ssl.co.uk)。 我想通過專用服務器通過VPS上注冊的域發送電子郵件。

我可以通過Outlook連接,並發送接收電子郵件而沒有任何問題: Outlook安裝程序

但是,由於我使用的是VPS /雲服務器,UKFast建議如果我從代碼發送,則必須使用“ localhost”或“ 127.0.0.1”。 但是我看不到與Outlook連接和發送電子郵件有什么不同,我的代碼正試圖通過VPS域/郵件從專用服務器執行以下操作:

Imports System.Net.Mail

Public Shared Function SendMail(ByVal email As String, ByVal name As String, ByVal hear As String, ByVal mess As String) As String

    Dim mail As New MailMessage()

    mail.From = New MailAddress(email)
    mail.To.Add("******@gmail.com")

    mail.Subject = "Contact Email from My Website"
    mail.IsBodyHtml = True
    Dim str As String = "<table border=""1"" cellpadding=""4"" cellspacing=""0""><tr><td>Name:</td><td>" & name & "</td></tr><tr><td>" & "Email:</td><td>" & email & "</td></tr><tr><td>Hear:</td><td>" & hear & "</td></tr><tr><td valign=""top"">Message:</td><td>" & mess.Replace(Chr(10), "<br />") & "</td></tr></table>"

    mail.Body = str

    Dim smtp As New SmtpClient("mail.-same as outgoing mail server in Outlook-.co.uk")
    smtp.Port = 25
    smtp.Credentials = New System.Net.NetworkCredential("UserNameFromOutlook","PasswordFromOutlook")
    Try
        smtp.Send(mail)
    Catch ex As Exception
        Return ex.ToString

        Return ("error")
    End Try

    Return ("ok")
End Function

但是,當從asp.net頁發送此消息時,出現錯誤:

System.Net.Mail.SmtpException:發送郵件失敗。 ---> System.Net.WebException:無法連接到遠程服務器---> System.Net.Sockets.SocketException:無法建立連接,因為目標計算機在System.Net上主動拒絕它(myipaddress):25 .Sockets.Socket。

我看不出為什么Outlook可以毫無問題地連接,但是我的SendMail代碼無法使用相同的憑據進行相同的操作。

我的web.config具有:

<configuration>
<system.net>
    <mailSettings>
        <smtp from="info@busybeesdingwall.co.uk">
            <network host="mail.-same as outgoing mail server in Outlook-" port="25" userName="UserNameFromOutlook" password="PasswordFromOutlook" />
        </smtp>
    </mailSettings>
</system.net>
</configuration>

我的代碼有什么問題,可以更改以允許我發送電子郵件嗎?

謝謝你的幫助,

標記

    protected void Btn_SendMail_Click(object sender, EventArgs e)
    {
        MailMessage mailObj = new MailMessage(
        "noreplay@myDomain.com", toTextBox.Text, subTextBox.Text, msgTextBox.Text);

        SmtpClient SMTPServer = new SmtpClient("yourSMTPServer", 25);

        try
        {
            SMTPServer.Send(mailObj);
        }
        catch (Exception ex)
        {
            Label1.Text = ex.ToString();
        }

        Label1.Text = "Msg sent";
    }

您只需要添加控件

toTextBox, subTextBox, msgTextBox

您沒有與主機連接。 要檢查的第一個區域是您的web.config文件。 聽起來您已經設置好了:

<mailSettings>
<smtp>
<network host="localhost"

確認已完成設置后,您可能會在服務提供商內部進行設置。 通常,他們需要在工具中進行設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM