1

UKFasts Cloud Shared VPSの登録済み/オンラインドメインを介して、asp.netWebサイトから電子メールを送信する方法を理解するのに非常に苦労しています。

私のウェブサイトとドメイン名は、クラウド/ VPSサーバーの1つ(例:www.mysite.co.uk)でUKFastを使用してホストされています。私のWebアプリは、専用サーバー(www.mysite-ssl.co.ukなど)でホストされています。専用サーバーから、VPSに登録されているドメイン経由でメールを送信したい。

Outlook経由で接続し、問題なく受信メールを送信できます。 Outlookのセットアップ

ただし、私はVPS /クラウドサーバーを使用しているため、コードから送信する場合は、「localhost」または「127.0.0.1」を使用する必要があるとUKFastはアドバイスしています。しかし、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:ターゲットマシンがアクティブに拒否したため、接続できませんでした(myipaddress):25 at System.Net .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>

私のコードに何か問題がありますか?メールを送信できるように変更できますか?

助けてくれてありがとう、

マーク

4

2 に答える 2

1
    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

于 2013-03-08T22:33:50.070 に答える
0

ホストに接続していません。最初に確認する領域は、web.configファイルです。すでにこれを設定しているようです。

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

これが設定されていることを確認したら、おそらくサービスプロバイダー内で設定するものがあります。多くの場合、ツール内でのセットアップが必要です。

于 2013-03-08T22:34:42.090 に答える