Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 830
Записей в блоге: 3
1

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

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


Доброго времени суток.
Ребят подскажите как можно отправлять письма через 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2017, 20:07
Ответы с готовыми решениями:

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

Отправка писем
Как сделать чтобы одновремено отправиль две писма на оделенме почты. Чтобы писма отправиль на...

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

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

8
3560 / 3034 / 817
Регистрация: 29.08.2013
Сообщений: 20,240
Записей в блоге: 2
24.08.2017, 08:19 2
читай тут
https://support.google.com/a/answer/176600?hl=ru
0
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 830
Записей в блоге: 3
24.08.2017, 08:23  [ТС] 3
Цитата Сообщение от qwertehok Посмотреть сообщение
https://support.google.com/a/answer/176600?hl=ru
Я от сюда и брал данные для настройки.
0
3560 / 3034 / 817
Регистрация: 29.08.2013
Сообщений: 20,240
Записей в блоге: 2
24.08.2017, 08:29 4
а SSL?
0
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 830
Записей в блоге: 3
24.08.2017, 08:31  [ТС] 5
Цитата Сообщение от qwertehok Посмотреть сообщение
а SSL?
Так вот как указать то его. Я делал что то с SSL но мне приходило письмо на почту что кто то или что то пытается войти на мою почту, и на этом было все.
0
3560 / 3034 / 817
Регистрация: 29.08.2013
Сообщений: 20,240
Записей в блоге: 2
24.08.2017, 09:03 6
Цитата Сообщение от First Посмотреть сообщение
Так вот как указать то его
ну немножко головой то подумать надо
Как использовать SSL для отправки почты на Delphi 7 Indy 9
0
1 / 1 / 0
Регистрация: 13.11.2015
Сообщений: 2
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
3560 / 3034 / 817
Регистрация: 29.08.2013
Сообщений: 20,240
Записей в блоге: 2
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2019, 16:32
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.