Я использую сервер smtp google для отправки электронной почты через мою контактную форму. На локальном сервере она работает нормально, но на веб-сервере она показывает эту ошибку. Во-первых, я использовал номер порта , который дает ошибку «Исключение безопасности», и ошибка была на линии using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber))
, но я изменил порт на , и он дает эту новую ошибку на линии.Попытка получить доступ к сокету запрещена его разрешениями доступа
smtp.Send(mail);
Описание:
Необработанное исключение при выполнении текущего запроса веб. Просмотрите трассировку стека за дополнительной информацией о ошибке и где она возникла в коде.
Сведения об исключении:
System.Net.Sockets.SocketException: Была сделана попытка получить доступ к гнездо таким образом, запрещенным правами доступа 74.125.206.108:25
Мой код:
protected void send_Click(object sender, EventArgs e)
{
string smtpAddress = "smtp.gmail.com";
int portNumber = 25;
bool enableSSL = true;
string emailfrom = "[email protected]";
string password = "******";
string subject = "Contact Form Data";
string emailto = "[email protected]";
string name = n.Value;
string useremail = em.Value;
string phone = tel.Value;
string dept = dep.Value;
string dest = des.Value;
string adu = ad.Value;
string msg = mes.Value;
string body = "Name: " + name + " ;" + " Email: " + useremail + " ;" + "Telephone: " + phone + " ;" + " Departure Place: " + dept + " ;" + "Destination Place: " + dest + " ;" + " Adults: " + adu + " ;" + " ;" + "Children: " + chil + " ;" + "Message: " + msg + " ;";
using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress(emailfrom);
mail.To.Add(emailto);
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber))
{
smtp.Credentials = new NetworkCredential(emailfrom, password);
smtp.EnableSsl = enableSSL;
smtp.Send(mail);
}
}
}
Трассировка стека
[SocketException (0x271d): Была сделана попытка доступа к сокету способом, запрещенным правами доступа 74.125.206.108:25] System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, socketAddress socketAddress) +208 System.Net.ServicePoint.ConnectSocketInternal (булево connectFailure, гнездо s4, s6 гнездо, гнездо & гнездо, IPAddress & адрес, ConnectSocketState состояние, IAsyncResult AsyncResult, исключение & исключения) +464
[WebException: Невозможно подключиться к удаленному серверу] System.Net.ServicePoint.GetConnection (PooledStream PooledStream, владельца объекта, Boolean асинхр, IPAddress & адреса, розетка & abortSocket, гнезда & abortSocket6) +6662436 System.Net.PooledStream.Activate (Объект owningObject, булева асинхронной, GeneralAsyncDelegate AsyncCallback) +307 System.Net.PooledStream.Activate (Object owningObject, GeneralAsyncDelegate AsyncCallback) +19 System.Net.ConnectionPool.GetConnection (Объект, владеющийОбъект, GeneralAsy ncDelegate AsyncCallback, Int32 creationTimeout) +324 System.Net.Mail.SmtpConnection.GetConnection (ServicePoint Servicepoint) +141 System.Net.Mail.SmtpTransport.GetConnection (ServicePoint Servicepoint) +170 System.Net.Mail.SmtpClient. GetConnection() +44 System.Net.Mail.SmtpClient.Send (сообщение MailMessage) +1554
[SmtpException: отказ отправки почты.] 10 System.Net.Mail.SmtpClient.Send (сообщение MailMessage) +1906 Contact.send_Click (отправитель объекта, EventArgs e) в \ smb-whst-www02 \ whst_www02 $ \ ff8b1b \ user \ medviewair.uk \ web \ Contact.aspx.cs: 51 System.Web.UI.WebControls.Button.OnClick (EventArgs e) +9628462 System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) +103 System.Web.UI.WebControls.Button.System.Web .UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler SourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent (NameValueCollection PostData) +35 System.Web.UI.Page.ProcessRequestMain (Boolean inc. ludeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
У вас [this] (http://stackoverflow.com/questions/20779336/an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permiss)? – knobcreekman
Если он работает локально, но не на веб-сервере, проверьте брандмауэр на веб-сервере, чтобы убедиться, что доступны исходящие соединения на выбранном вами порту. Попробуйте подключиться с веб-сервера к SMTP-серверу с помощью 'telnet' по выбранному порту. Кроме того, вы пытались подключиться через порт 465? Или попробуйте порт 25 с 'smtp.EnableSsl = false;' – knobcreekman
Я пробовал разные номера портов и enablessL до false, но он по-прежнему не работает. –