Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как отправить сообщение gmail через C#

Мирос Тер Ученик (10), открыт 2 недели назад
// отправитель - устанавливаем адрес и отображаемое в письме имя
MailAddress From = new MailAddress("*********@gmail.com", "aboba");

// кому отправляем
MailAddress To = new MailAddress("*********@gmail.com");

// создаем объект сообщения

MailMessage msg = new MailMessage(From, To);
// тема письма
msg.Subject = "Тестовое письмо";

// текст письма
msg.Body = "Test";

// письмо представляет код html
msg.IsBodyHtml = true;

// адрес smtp-сервера и порт, с которого будем отправлять письмо

SmtpClient smtp = new SmtpClient(" smtp.gmail.com ", 465);
smtp.Credentials = new NetworkCredential("***********", "*************");
smtp.EnableSsl = true;
smtp.Send(msg);
Console.ReadKey();

вот этот код вылазиет ошибка
2 ответа
_ Искусственный Интеллект (862766) 2 недели назад
для начала в настройках почты надо включить функцию внешнего управления
Потом переписать код на IMAP, потому что большинство сервисов почты уже по smtp не работают
Мирос ТерУченик (10) 2 недели назад
я код из инета взял напиши как сделать
_ Искусственный Интеллект (862766) Мирос Тер, Код старый. Он уже лет 5 как не работает
Chromatic Scale Искусственный Интеллект (232058) 2 недели назад
Ошибка, которую вы видите, связана с отправкой почты через SMTP-сервер Gmail. Возможные причины и способы устранения ошибки:

### 1. **Проблема с SMTP-адресом и портом**
Вы указали:
```csharp
SmtpClient smtp = new SmtpClient(" smtp.gmail.com ", 465);
```
Ошибка в лишних пробелах вокруг адреса и, возможно, в порте. Для SSL используйте порт **587** с `EnableSsl = true`.

**Исправленный код:**
 using System; 
using System.Net;
using System.Net.Mail;

class Program
{
static void Main()
{
try
{
MailAddress from = new MailAddress("your_email@gmail.com", "aboba");
MailAddress to = new MailAddress("recipient_email@gmail.com");

MailMessage msg = new MailMessage(from, to);
msg.Subject = "Тестовое письмо";
msg.Body = "Test";
msg.IsBodyHtml = true;

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.Credentials = new NetworkCredential("your_email@gmail.com", "your_password");
smtp.EnableSsl = true;

smtp.Send(msg);
Console.WriteLine("Письмо успешно отправлено!");
}
catch (Exception ex)
{
Console.WriteLine("Ошибка: " + ex.Message);
}
}
}


---

### 2. **Проблемы с доступом Gmail**
Gmail может блокировать попытку подключения из-за "небезопасного приложения".

- **Включите "Менее безопасные приложения" в Google аккаунте:**
Перейдите в [Google Account Security]( https://myaccount.google.com/security ) → Включите доступ для менее безопасных приложений.
(Если нет такой опции, используйте App Passwords.)

- **Использование пароля приложения (App Passwords):**
Если у вас включена двухфакторная аутентификация, создайте [пароль приложения]( https://myaccount.google.com/apppasswords ) и используйте его вместо обычного пароля.

---

### 3. **Проверка SSL и TLS**
Убедитесь, что ваше приложение поддерживает TLS 1.2:
```csharp
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
```
Добавьте перед `smtp.Send(msg);`.

---

### 4. **Отладка ошибок**
Для получения более подробной информации:
```csharp
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network ;
smtp.UseDefaultCredentials = false;
```

Попробуйте этот исправленный код, и если ошибка сохранится — отправьте текст ошибки, нажав на кнопку **"Подробности"** в окне с ошибкой.
Похожие вопросы