2016-09-06 8 views
0

Я пытаюсь отправить электронное письмо с помощью SMTP-сервера Gmail, но сообщение всегда не удается отправить. Окно браузера закрывается, и Express для Интернета начинает мигать с этой ошибкой. Любая помощь будет принята с благодарностью. Кодекс был включен нижеСообщение Gmail Smtp не отправляется.

кодекса За

using System.Net.Mail; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Demos_email_demo : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
    MailMessage myMessage = new MailMessage(); 
    myMessage.Subject = "Test Message"; 
    myMessage.Body = "Hello World"; 
    myMessage.From = new MailAddress("[email protected]", "Will"); 
    myMessage.To.Add(new MailAddress("[email protected]", "Will")); 



    SmtpClient mySmtpClient = new SmtpClient("smtp.gmail.com"); 
    mySmtpClient.Send(myMessage); 


} 
} 

Web.Config

<system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
</system.web> 
<system.net> 
<mailSettings> 
<smtp deliveryMethod="Network" from="Will &lt;[email protected]&gt;"> 
<network host ="smtp.gmail.com" enableSsl="true" port="465" /> 
</smtp> 
</mailSettings> 
</system.net> 
</configuration> 

Screenshot Of Error

+1

попробуйте установить порт expicitlely в настройках SMTP, как этот новый SmtpClient («smtp.gmail.com», 587) ..... Вы можете даже не нужно использовать, используя заявление и установить SSL и тому подобное это с помощью (вар = SMTP новый SmtpClient()) { вар = новый мандат NetworkCredential { UserName = "[email protected]", // заменить действительное значение Пароль = "qwerty123456" // заменить действительное значение }; smtp.Credentials = учетные данные; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.Send (message);} –

+0

Вам также необходимо настроить учетную запись gmail, чтобы разрешить использование smtp. https://www.google.com/search?q=set+gmail+account+to+allow+smtp&ie=&oe= –

ответ

0

Вам нужно установить NetworkCredential Как это.

client.Credentials = новый NetworkCredential («имя пользователя», «пароль»);

Ваш код должен быть таким.

MailMessage myMessage = new MailMessage(); 
    myMessage.Subject = "Test Message"; 
    myMessage.Body = "Hello World"; 
    myMessage.From = new MailAddress("[email protected]", "Will"); 
    myMessage.To.Add(new MailAddress("[email protected]", "Will")); 

    SmtpClient mySmtpClient = new SmtpClient("smtp.gmail.com"); 
    mySmtpClient .Credentials=new NetworkCredential("username", "password"); 

    mySmtpClient.Send(myMessage); 
+0

Это определенно получает меня где-то, но Google теперь блокирует отправленное письмо (даже после включения IMAP) –

+1

Разрешить доступ к менее безопасному приложению в вашей учетной записи Gmail. https://support.google.com/accounts/answer/6010255?hl=ru –

+0

Asp.net теперь бросает следующую ошибку: «Невозможно прочитать данные из транспортного соединения: net_io_connectionclosed». –

Смежные вопросы