Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
1

Отправка писем через gmail

23.08.2017, 20:07. Показов 6604. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Ребят подскажите как можно отправлять письма через gmail, я пытаюсь сделать так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var
  IdSMTP: TIdSMTP;
  IdMessage: TIdMessage;
  IdEmailAddressItem: TIdEmailAddressItem;
begin
  IdSMTP := TIdSMTP.Create(nil);
  try
    IdSMTP.Host := 'smtp.gmail.com';
    IdSMTP.Port := 465;
    IdSMTP.AuthType := satDefault;
    IdSMTP.Username := 'firstal4@gmail.com';
    IdSMTP.Password := '************';
    IdSMTP.Connect;
    if IdSMTP.Authenticate then
    begin
      IdMessage := TIdMessage.Create(nil);
      try
        IdMessage.From.Name := 'User Name';
        IdMessage.From.Address := 'firstal4@gmail.com';
        IdMessage.Subject := 'E-mail subject';
        IdMessage.Body.Add('E-mail body.');
 
        IdEmailAddressItem := IdMessage.Recipients.Add;
        IdEmailAddressItem.Address := 'firstal4@gmail.com';
 
        IdSMTP.Send(IdMessage);
      finally
        IdMessage.Free;
      end;
    end;
    IdSMTP.Disconnect;
  finally
    IdSMTP.Free;
  end;
Ошибок не выдает но и писем не приходит.
Буду признателен за любую подсказку.

PS письмо пытаюсь отправить на свой же ящик.
0
23.08.2017, 20:07
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2017, 20:07
Ответы с готовыми решениями:

отправка писем
Как отправлять письма на почту?

Отправка писем
Как сделать чтобы одновремено отправиль две писма на оделенме почты. Чтобы писма отправиль на 123@mail.ru и 321@mail.ru сделал код такой...

Отправка писем на почту
idsmtp2.Host:='smpt.yandex.ru'; idsmtp2.Host:= IntToStr(25); idsmtp2.Username:='*******'; idsmtp2.Password:='******'; ...

8
5599 / 4449 / 1080
Регистрация: 29.08.2013
Сообщений: 27,784
Записей в блоге: 3
24.08.2017, 08:19 2
читай тут
https://support.google.com/a/answer/176600?hl=ru
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
24.08.2017, 08:23  [ТС] 3
Цитата Сообщение от qwertehok Посмотреть сообщение
https://support.google.com/a/answer/176600?hl=ru
Я от сюда и брал данные для настройки.
0
5599 / 4449 / 1080
Регистрация: 29.08.2013
Сообщений: 27,784
Записей в блоге: 3
24.08.2017, 08:29 4
а SSL?
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
24.08.2017, 08:31  [ТС] 5
Цитата Сообщение от qwertehok Посмотреть сообщение
а SSL?
Так вот как указать то его. Я делал что то с SSL но мне приходило письмо на почту что кто то или что то пытается войти на мою почту, и на этом было все.
0
5599 / 4449 / 1080
Регистрация: 29.08.2013
Сообщений: 27,784
Записей в блоге: 3
24.08.2017, 09:03 6
Цитата Сообщение от First Посмотреть сообщение
Так вот как указать то его
ну немножко головой то подумать надо
Как использовать SSL для отправки почты на Delphi 7 Indy 9
0
1 / 1 / 0
Регистрация: 13.11.2015
Сообщений: 20
08.11.2019, 16:14 7
Вот рабочий вариант на ноябрь 2019 года

Предварительно нужно разрешить сторонним приложениям использовать ваш ящик:

Зайти в аккаунт и разрешить вход не безопасным приложениям по ссылке
https://myaccount.google.com/lesssecureapps
Включаем переключатель.

Придет письмо - жмем кнопку - посмотреть действия
В след.окне, на вопрос - Это были вы? - Да.

Дальше уже подключаемся программой

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
unit gmUnit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  IdSMTP,IdMessage,IdEmailAddress,IdSSLOpenSSL, StdCtrls;
 
type
  Tgm_sender_Form = class(TForm)
    Edit_email: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Memo_msg: TMemo;
    Edit_subj: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    procedure send;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  gm_sender_Form: Tgm_sender_Form;
 
implementation
 
{$R *.DFM}
 
procedure Tgm_sender_Form.send;
var
  IdSMTP: TIdSMTP;
  IdMessage: TIdMessage;
  IdEmailAddressItem: TIdEmailAddressItem;
 
  IdSSLIOHandlerSocket1:TIdSSLIOHandlerSocket;
begin
  IdSMTP := TIdSMTP.Create(nil);
 
IdSSLIOHandlerSocket1:=TIdSSLIOHandlerSocket.create(self);
IdSMTP.IOHandler:=IdSSLIOHandlerSocket1;
IdSSLIOHandlerSocket1.SSLOptions.Method:=sslvTLSv1_2;
 
  try
    IdSMTP.Host := 'smtp.gmail.com';
    IdSMTP.Port := 465;      // 587
    IdSMTP.AuthenticationType:= atLogin;//satDefault;  
    //  или IdSMTP.AuthType := satDefault;   здесь зависит от версии indy возможно и без этого параметра работает
    IdSMTP.Username := ''; //  в e-mail вашей учетной записи
    IdSMTP.Password := ''; // пароль вашей учетной записи
    IdSMTP.Connect;
    if IdSMTP.Authenticate then
    begin
      IdMessage := TIdMessage.Create(nil);
      try
        IdMessage.From.Name := 'Test Name'; // конвертировать в UTF-8
        IdMessage.From.Address := Edit_email.text;//'firstal4@gmail.com';
        IdMessage.Subject := Edit_subj.Text;// 'E-mail subject';  // конвертировать в UTF-8
        IdMessage.Body.Add(Memo_msg.Lines.text); //'E-mail body.');  // конвертировать в UTF-8 
 
        IdEmailAddressItem := IdMessage.Recipients.Add;
        IdEmailAddressItem.Address := Edit_email.text;//'firstal4@gmail.com';
 
        IdSMTP.Send(IdMessage);
      finally
        IdMessage.Free;
      end;
    end;
    IdSMTP.Disconnect;
  except
 
    on E: Exception do
    begin
        memo_log.lines.add(e.message);
 
    end;
 
 
  end;
IdSMTP.Free;
 
IdSSLIOHandlerSocket1.free;  
 
end;
 
procedure Tgm_sender_Form.Button1Click(Sender: TObject);
begin
send;
end;
 
end.
1
5599 / 4449 / 1080
Регистрация: 29.08.2013
Сообщений: 27,784
Записей в блоге: 3
09.11.2019, 16:29 8
Цитата Сообщение от Rogan Посмотреть сообщение
Вот рабочий вариант на ноябрь 2019 года
сделайте функцией в которую передаются нужные параметры, а она в ответ возвращает результат ошибки или 0
сейчас же по коду нужно искать Edit_email и Edit_subj и кучу остальных компонентов

ЗЫ ну и отвечать в теме 2017 года тоже как то не очень
0
D1973
09.11.2019, 16:32     Отправка писем через gmail
  #9

Не по теме:

Цитата Сообщение от qwertehok Посмотреть сообщение
отвечать в теме 2017 года тоже как то не очень
Да если в тему - то ладно...

0
09.11.2019, 16:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2019, 16:32
Помогаю со студенческими работами здесь

Отправка писем SSL
КАК? Это ж уму не постижимо, неужели делфи реально умирает, что бы элементарно отправить письмо с использованием современных требований...

Отправка писем в HTML формате
Привет! Помогите ! Какой код или как надо зделать что отправить письмо с рисунков в теле. НЕ КАК ВЛОЖЕНИЕ! А типа рисунок на заднем фоне??...

Delphi 2010 и отправка писем на мыло
Добрый день! Во всех версах отправка писем работает стабильно по методу: IdSmtp1.Host:= 'smtp.yandex.ru'; IdSmtp1.Port...

Как соединиться с gmail через IMAP?
IMAP Server: imap.gmail.com Port: 993. Нужно включить защищённое TSL соединение. Вопросы: 1. Как включить защищённое TSL...

Отправка почты из приложения через gmail
Здраствуйте знатоки прошу помощи! пишу программку одной из функций которой будит отправка электронной почты. РАссылка будит осуществлятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Отключение отслеживания файла, занесенного в .gitignore в Git
hw_wired 10.02.2025
Git помогает следить за изменениями в проекте, но иногда требуется исключить определенные файлы из системы контроля версий. Это могут быть конфигурационные файлы с локальными настройками, временные. . .
Что такое use strict в JavaScript
hw_wired 10.02.2025
Директива use strict - способ перевода JavaScript-кода в строгий режим работы, который делает язык более безопасным и предсказуемым. Она появилась в ECMAScript 5 как ответ на многочисленные проблемы,. . .
Как в jQuery проверить, что элемент скрыт
hw_wired 10.02.2025
jQuery предоставляет несколько эффективных способов определить, скрыт элемент или отображается на странице. Самый простой метод использует специальные селекторы :hidden и :visible. Селектор :hidden. . .
Как проверить (check out) ветку Git в удаленном репозитории
hw_wired 10.02.2025
Проверка удаленной ветки в Git требует понимания нескольких базовых концепций и точного выполнения определенной последовательности действий. Для начала необходимо получить актуальную информацию о. . .
chucknorris в HTML и другие обозначения цветов
hw_wired 10.02.2025
HTML, как основной язык разметки веб-страниц, прошел длинный путь развития в плане работы с цветами. На заре развития веб-технологий разработчики могли использовать только базовый набор из 16. . .
Стек и куча: отличия и назначение
hw_wired 10.02.2025
Управление памятью - ключевой элемент работы любой программы. В современных языках программирования память делится на две основные области: стек и кучу. Каждая из них обладает уникальными. . .
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru