2013-11-13 4 views
0

Я делаю свой проект в mvc4 с помощью C#. У меня есть страница контакта на моем сайте. Моя потребность в том, что я должен получать сообщения на мой электронный идентификатор от другого идентификаторами, при нажатии Отправлять button.I используйте следующий кодПроблема при получении электронной почты

public void ReceiveMail(string name,string email,string message) 
{ 
    MailMessage msg = new MailMessage(); 
    HttpContext ctx = HttpContext.Current; 
    msg.To.Add(new MailAddress("MyEmailId")); 
    msg.From = new MailAddress(email); 
    msg.Subject =name + "send a message"; 
    msg.Priority = MailPriority.High; 
    msg.Body = message; 
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");// i am confused what to write here 
    SmtpServer.Send(msg); 
} 

Это показывает ошибку

The SMTP server requires a secure connection or the client was not authenticated. 
The server response was: 5.7.0 Must issue a STARTTLS command first. 
at4sm42219747pbc.30 - gsmtp 

Я надеваю Не знаю, с какого сервера я получил почту. Тогда как я могу решить эту проблему. Пожалуйста, помогите мне

+0

Вам не хватает учетных данных сети – Rohit

ответ

0

Чтобы войти в Gmail SMTP-сервер, вам необходимо использовать NetworkCredential. Ошибка очень очевидна.

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); 
smtp.EnableSsl = true; 
smtp.UseDefaultCredentials = false; 
smtp.Credentials = new NetworkCredential("your-email", "your-password"); 
+0

Фактически я хочу получать письма от других писем .. но используя это, я получил почту с моего адреса – neel

0

Вы пробовали:

smtpServer.Host = "smtp.gmail.com"; 
smtpServer.Port = 587; 
smtpServer.Credentials = 
    new NetworkCredential("SenderGmailUserName", "SenderPassword"); 
+0

Фактически я хочу получать письма от других писем .. но используя это, я получил почту с моего адреса – neel

+0

@Parvathiiiii Пожалуйста, ознакомьтесь с моим обновленным ответом. Отправитель может отправлять почту с использованием своих учетных данных. Вам необходимо предоставить пользователю возможность указать имя пользователя и пароль (не рекомендуется) – Rohit

+0

Это не уверен, что отправитель всегда отправляет с его учетную запись gmail, а также я получаю почту, а затем, как я знаю пароль отправителей – neel

1

Отправка сообщения электронной почты с Gmail требует дополнительных настроек. Сначала номер порта должен быть 587 (вместо значения по умолчанию 25). Во-вторых, Gmail требует безопасного соединения. И, конечно же, вы должны предоставить действительные учетные данные.

В общем, инициализация SmtpClient должен выглядеть следующим образом:

SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com", 587); 
SmtpServer.EnableSsl = true; 
SmtpServer.Credentials = new NetworkCredential("[email protected]", "password"); 
1

как говорит ошибка, команда STARTTLS следует использовать в первую очередь. Это означает, что gmail принимает почту только через безопасное соединение. В this answer enableSsl было установлено значение true. Как говорит documentation from microsoft, класс SmtpClient обладает таким свойством. Кроме того, вы должны оставить свои учетные данные в smptClient. Я думаю, что gmail принимает почту только от пользователей аутентификации. Я думаю, что вся проблема решена. here.

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