Heba Kamel Ответов: 2

Отправка электронной почты с помощью Gmail


Привет,
Я использовал этот код для отправки электронной почты из моего настольного приложения
string smtpAddress = "smtp.gmail.com";
            int portNumber = 587;
            bool enableSSL = true;

            string emailFrom = "xyz@gmail.com";
            string password = "myPassword";
            string emailTo = "xyz@yahoo.com";
            string subject = "Hello";
            string body = "Hello, I'm just writing this to say Hi!";

            using (MailMessage mail = new MailMessage())
            {
                mail.From = new MailAddress(emailFrom);
                mail.To.Add(emailTo);
                mail.Subject = subject;
                mail.Body = body;
                mail.IsBodyHtml = true;
                // Can set to false, if you are sending pure text.

                mail.Attachments.Add(new Attachment("C:\\n.txt"));

                using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber))
                {
                    smtp.Credentials = new NetworkCredential(emailFrom, password);
                    smtp.EnableSsl = enableSSL;
                    smtp.Send(mail);
                }
            }


и у меня есть эта ошибка
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.1 Authentication required

кто-нибудь поможет ?

Shweta N Mishra

есть ли у вас настроенный smtp на вашем конце ?
Вы не можете получить доступ к SMTP yahoo, у вас нет доступа к нему.

Heba Kamel

Нет, как я могу это сделать?
Можно ли изменить протокол SMTP, как Yahoo на Gmail по протоколу SMTP (smtp.gmail.com), верно?

Richard MacCutchan

Вам нужно иметь учетную запись в службе SMTP, чтобы использовать ее для электронной почты, будь то Yahoo или gmail.

Heba Kamel

Как я могу получить эту учетную запись и где я использовал эту учетную запись в своем коде?

Richard MacCutchan

Перейдите в gmail и создайте его.

Heba Kamel

Как же так ?

Richard MacCutchan

Что значит "как"? Перейдите в Gmail и следуйте инструкциям.

Heba Kamel

Я имею в виду, что захожу в Gmail, но не знаю, откуда получить аккаунт ..

2 Ответов

Рейтинг:
14

Afzaal Ahmad Zeeshan

Я протестировал весь этот код в своей собственной IDE, и результатом этой проблемы стала ошибка совпадения имени пользователя и пароля.

Убедитесь, что вы используете правильный пароль для действительного имени пользователя на сервере.

Возможная проблема: вы задаете вопрос о Gmail, но используете SMTP-сервер Yahoo. Вы уверены, что используете правильные настройки учетных данных для сервера Yahoo, или вы ошибочно написали Этот адрес хоста Yahoo smpt?


Heba Kamel

я написал эту строчку
протокол SMTP.Порт = 25;
но все равно ошибка

SMTP - сервер требует безопасного подключения, иначе клиент не прошел проверку подлинности. Ответ сервера был таков: 5.7.0 должен сначала выдать команду STARTTLS. c5sm16036467wik.3 - gsmtp

Afzaal Ahmad Zeeshan

Вы пробовали написать его внутри блока using?

Afzaal Ahmad Zeeshan

Пожалуйста, смотрите мой обновленный ответ.

Heba Kamel

Извините, это ошибка, Я имею в виду Gmail smtp (smtp.gmail.com)
да, я использовал его в использовании блока
в этой строке
smtp.Credentials = new NetworkCredential("xyz@gmail.com", пароль);
я должен написать адрес электронной почты или имя пользователя в первом параметре?

Heba Kamel

Убедитесь, что вы используете правильный пароль для действительного имени пользователя на сервере .

Вы имели в виду мой пароль электронной почты ?

Afzaal Ahmad Zeeshan

Да, ваша комбинация имени пользователя и пароля должна быть правильной и действительной. В противном случае он будет генерировать эту ошибку.

Heba Kamel

но мой пароль и имя пользователя верны

Heba Kamel

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

строка smtpAddress = "smtp.gmail.com";
int portNumber = 587;
bool enableSSL = true;

строка emailFrom = "sendtest875@gmail.com";
строковый пароль = "testsend0123";
строка emailTo = "xyz@yahoo.com";
строка subject = "Привет";
string body = "Привет, я просто пишу это, чтобы сказать Привет!";

использование (MailMessage mail = new MailMessage())
{
почта.From = новый почтовый адрес(emailFrom);
mail.To.Add(emailTo);
mail.Subject = тема письма;
почта.Тело = тело;
почта.IsBodyHtml = true;
// Можно установить значение false, если вы отправляете чистый текст.

почта.Вложения.Добавить(новое вложение("C:\\n.txt"));

using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber))
{
smtp.Credentials = new NetworkCredential(emailFrom, пароль);
smtp.EnableSsl = enableSSL;
smtp.Send(почта);
}
}

Heba Kamel

Afzaal ?

Afzaal Ahmad Zeeshan

Хеба, единственные возможные проблемы были сообщены вам, и решение состоит в том, чтобы убедиться, что вы передаете правильную комбинацию имени пользователя и пароля в систему. правильный SMTP-сервер В противном случае вы будете продолжать получать эту ошибку.

Heba Kamel

Хорошо, вы проверили предыдущий код с помощью электронной почты (sendtest875@gmail.com)
Я создал эту почту для тестирования и у меня такая же ошибка , вы можете проверить и это пароль (testsend0123)

Afzaal Ahmad Zeeshan

Я уже пробовал, есть ошибка входа в систему. Если вы войдете в учетную запись, то увидите кучу ошибок, говорящих о том, что попытка входа отклонена и т. д.

Heba Kamel

Ошибка при входе в учетную запись Gmail ?!
Я пробую и это правильно
sendtest875@gmail.com
testsend0123

Afzaal Ahmad Zeeshan

Нет, не в настольной версии от mail.google.com, но похоже, что из консольного приложения, которое я тестирую... в любом случае попробуйте использовать свой собственный аккаунт, потому что для меня мой аккаунт работает нормально. :-)

Heba Kamel

но мой аккаунт тоже не работал ?!!

Heba Kamel

Есть ли какие-либо настройки в Gmail перед отправкой ?

BillWoodruff

+5 хороший анализ и проверка фактов !

Afzaal Ahmad Zeeshan

Спасибо, Билл. :-)

Heba Kamel

Я согласен с вами,
Спасибо Afzaal

Рейтинг:
1

Member 10600174

первый
строка smtpAddress = "smtp.gmail.com";
второй
проверьте учетные данные ur , имя пользователя и пароль учетной записи ur


Heba Kamel

Вы имели в виду, что в этой строке я должен написать имя пользователя, а не адрес электронной почты в первом параметре ?
smtp.Credentials = new NetworkCredential("xyz@gmail.com", пароль);

[no name]

Привет Афзал ты получил решение. У меня та же проблема, я не могу понять, что делать