我很难通过我的asp.net网站,通过UKFast Cloud Shared VPS上的注册/在线域发送电子邮件。
我的网站和域名在其云计算/ VPS服务器(例如www.mysite.co.uk)上使用UKFast托管。我的网络应用程序托管在专用服务器上(例如www.mysite-ssl.co.uk)。我想通过我的VPS上注册的域从专用服务器发送电子邮件。
我可以通过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:发送邮件失败。 ---&GT; System.Net.WebException:无法连接到远程服务器---&gt; System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它(myipaddress):25在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>
我的代码有问题,我可以更改以允许我发送电子邮件吗?
感谢您的帮助,
标记
答案 0 :(得分: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
答案 1 :(得分:0)
您没有与主持人联系。要检查的第一个区域是您的web.config文件。听起来你已经设置了这个:
<mailSettings>
<smtp>
<network host="localhost"
确认设置完成后,您可能需要在服务提供商中设置一些内容。通常,他们需要在他们的工具中进行设置。