移动服务器后ASP.Net表单问题-“;发送邮件失败“;
经过一个又一个小时的挠头和不知道为什么我的网站的代码过去在旧服务器上工作,现在在新服务器上就不工作了(更改了mailserver的IP,使用了服务器的子域地址,更改了端口,尝试了25、26、587和服务器管理员建议的任何东西),我终于在真正的问题上绊倒了(我想)这就是主机需要身份验证 我不知道如何将身份验证添加到我的旧代码中,支持人员甚至不再回复我的票据。任何帮助都将不胜感激 这是注册文件中发送激活码的部分:移动服务器后ASP.Net表单问题-“;发送邮件失败“;,asp.net,forms,Asp.net,Forms,经过一个又一个小时的挠头和不知道为什么我的网站的代码过去在旧服务器上工作,现在在新服务器上就不工作了(更改了mailserver的IP,使用了服务器的子域地址,更改了端口,尝试了25、26、587和服务器管理员建议的任何东西),我终于在真正的问题上绊倒了(我想)这就是主机需要身份验证 我不知道如何将身份验证添加到我的旧代码中,支持人员甚至不再回复我的票据。任何帮助都将不胜感激 这是注册文件中发送激活码的部分: MailClass.MailGonder("info@mysite.com", Txt
MailClass.MailGonder("info@mysite.com", TxtEMail.Text, "Activation", body, "info@mysite.com", "emailpassword", "mail.mysite.com", 587);
这是Mail_Class.cs文件,用于处理所有页面的邮件发送(除注册页面外,还有其他页面也使用此文件):
显示的错误消息是:“发送邮件失败。”
没有给出更多的细节。这一定是一篇非常老的帖子,因为它给出的示例使用了过时的.net类。下面我将它转换为c#,但我不知道它是否会工作,因为我以前从未使用过这些东西
using System;
using System.Web.Mail;
namespace Sngl
{
public class MailClass
{
public MailClass() { }
public static void MailGonder(string kimden, string kime, string title, string body, string senderEmail, string senderPassword, string smtpServer, int port)
{
try
{
var message = new MailMessage
{
From = kimden,
To = kime,
Subject = title,
Body = body
};
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"] = smtpServer;
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"] = port;
message.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"] = 1;
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;
message.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = senderEmail;
message.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = senderPassword;
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"] = 60;
SmtpMail.SmtpServer = smtpServer;
SmtpMail.Send(message);
PropertyClass.Result = true;
}
catch (Exception ex)
{
PropertyClass.Result = false;
PropertyClass.Message = ex.Message;
throw;
}
}
}
}
你确定主机是
mail.mysite.com
而不是smtp.mysite.com
?只是尝试了一下。它也不起作用。你是刚换了服务器还是域名也换了?域名是一样的。主机已经换了。新的主机是HostingFest。他们的支持非常差,我已经过了试用期,所以我无法获得许可证退款。这很不幸。你怎么会认为这与“身份验证”有关?什么类型的身份验证?SSL?如果是,那么请尝试将EnableSsl设置为true?很抱歉回复太晚。我正忙于其他事情。我现在将尝试此功能。非常感谢你的帮助。尝试这些功能后,我会发布结果。问题可能不是来自邮件吗发件人代码和表单本身的字段是否无效?因为其中一个字段是select输入,并且只有一个选项。
using System;
using System.Web.Mail;
namespace Sngl
{
public class MailClass
{
public MailClass() { }
public static void MailGonder(string kimden, string kime, string title, string body, string senderEmail, string senderPassword, string smtpServer, int port)
{
try
{
var message = new MailMessage
{
From = kimden,
To = kime,
Subject = title,
Body = body
};
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"] = smtpServer;
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"] = port;
message.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"] = 1;
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;
message.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = senderEmail;
message.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = senderPassword;
message.Fields["http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"] = 60;
SmtpMail.SmtpServer = smtpServer;
SmtpMail.Send(message);
PropertyClass.Result = true;
}
catch (Exception ex)
{
PropertyClass.Result = false;
PropertyClass.Message = ex.Message;
throw;
}
}
}
}