Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
1

Не отправляется e-mail

01.11.2014, 20:18. Просмотров 2382. Ответов 49
Метки нет (Все метки)

Пытаюсь отправить, что-нибудь на email из Delphi 7, до этого ранее отправлял, но старые примеры не работают, не понимаю в чём дело.

Применяются 2 компонента: IdMessage и IdSMTP
Вот код:
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
Smtp.Username:='LOGIN@mail.ru';
Smtp.Password:='PASSWORD';
Smtp.AuthenticationType:=atLogin; // atNone
Smtp.ASCIIFilter:=true;
MailMessage.From.Text:='LOGIN@mail.ru';
MailMessage.Subject:='TEMA E-MAIL'; // ????
MailMessage.From.Address:='LOGIN@mail.ru'; // ????? ???????????
MailMessage.Recipients.EMailAddresses:='LOGIN@mail.ru';
MailMessage.Body.Text:='TEXT EMAIL'; // ????? ?????????
 
try
  try
   SMTP.Connect;
   SMTP.Send(MailMessage);
   ShowMessage('OK!');
   except on E:Exception do
   begin
     ShowMessage('ERROR - '+E.Message +#10#9 + 'PISMO NT OTPRAVLENO');
   end;
 end;
 finally
 if SMTP.Connected
  then SMTP.Disconnect;
 end;
(Логин и Пароль - заменены словами)
При отправке - появляется ошибка.
Скажите, что тут не так или отправьте точно-работающий код.
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2014, 20:18
Ответы с готовыми решениями:

Программно поиск сообщения в e-mail от @xxx.xxx. С аккаунта любого e-mail сервиса, gmail, ya, mail и т.п
в программе нужно авторизоваться в мыле, найти сообщение от @xxxx.xxx, и...

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

Не отправляется запрос Delphi
Из за чего может не отправляться запрос через индюшку?

Не отправляется письмо на gmail
Не отправляется письмо на gmail-ящик. На yandex, mail и т.д. ящики...

Не отправляется mail
Приветствую. Есть скрипт обратной связи, и он не работает. Выскакивает при...

49
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
01.11.2014, 20:19 2
Цитата Сообщение от AndHacker Посмотреть сообщение
появляется ошибка
И ни одна буква в тексте ошибки тебе не знакома, ага..
0
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
01.11.2014, 20:25  [ТС] 3
Вот одно из них:
Не отправляется e-mail

(у яндекса другое, так как они шифруются и там по-другому).
0
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
01.11.2014, 20:28  [ТС] 4
У меня такое ощущение, что письма таким способом перестали отправляться.
Что делать? Как быть? Куда деваться?
0
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
01.11.2014, 20:33 5
Написано же - соединение отвержено.
Имеется ввиду попытка соединения с сервером smtp

Добавлено через 3 минуты
Пробуй
telnet HOST PORT

HOST и PORT берешь из соотв. указанных тобой свойств IdSMTP
0
NIKOLAYY
820 / 718 / 339
Регистрация: 22.09.2012
Сообщений: 4,995
02.11.2014, 01:35 6
Цитата Сообщение от AndHacker Посмотреть сообщение
до этого ранее отправлял, но старые примеры не работают
Даже не только примеры, а и версия в еще Indy- 9 отказывает Delphi 7.
Девятая ведь версия у тебя по умолчанию стоит?
Кинь любой компонент со вкладки Indy Clients нажми правой кнопкой мыши прямо по нему и посмотри версию Indy.

Добавлено через 5 минут
Судя по твоей писанине по 3 строке из кода и по тому что ты говориш код раньше этот твой работал, у тебя 9 версия Indy. Эта строка в 10 версии уже не отработает, там по другому чуть.
Delphi
1
Smtp.AuthenticationType:=atLogin; // atNone
0
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
02.11.2014, 06:21  [ТС] 7
Посмотрел, стоит 9.00.10 версия indy
Не отправляется e-mail
0
Алексей1990
4 / 4 / 0
Регистрация: 13.04.2013
Сообщений: 62
02.11.2014, 11:46 8
Тоже проблема, не отправляется письмо, хотя поменял порт который сейчас рабочий
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
IdSMTP1.Host:='smtp.yandex.ru';
  IdSMTP1.Port:=465;
  IdSMTP1.Username:='ddggr';
  IdSMTP1.Password:='544554';
  IdMessage1.Body.Text:='Текст письма';
  IdMessage1.From.Text:='ddggr@yandex.ru';
  IdMessage1.Recipients.EMailAddresses:='ddggr@yandex.ru';
  IdMessage1.Subject:='Тема';
 
  IdSMTP1.Connect();
  if IdSMTP1.Connected=true then
  IdSMTP1.Send(IdMessage1);
  IdSMTP1.Disconnect
1
droider
Universal
Эксперт Pascal/Delphi
4405 / 2451 / 765
Регистрация: 04.10.2012
Сообщений: 8,911
02.11.2014, 14:22 9
я миллион раз писал о рассылке почты, и не только я.
AndHacker, Алексей1990, тут размещен полностью рабочий код. Оставьте Ваши Delphi 7 и переходите на новые версии.
Delphi
1
IdSMTP1.Port:=465;
Алексей1990, советую почитать про SMTP-протокол, прежде чем выставлять такой порт.
Ошибка большинства.
0
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
02.11.2014, 15:15  [ТС] 10
Цитата Сообщение от droider Посмотреть сообщение
я миллион раз писал о рассылке почты, и не только я.
AndHacker, Алексей1990, тут размещен полностью рабочий код. Оставьте Ваши Delphi 7 и переходите на новые версии.
Delphi
1
IdSMTP1.Port:=465;
Алексей1990, советую почитать про SMTP-протокол, прежде чем выставлять такой порт.
Ошибка большинства.
Да, Ваш код наверно работает, только на Delphi XE3, а мне нужно на Delphi 7!

Добавлено через 1 минуту
Цитата Сообщение от Алексей1990 Посмотреть сообщение
Тоже проблема, не отправляется письмо, хотя поменял порт который сейчас рабочий
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
IdSMTP1.Host:='smtp.yandex.ru';
  IdSMTP1.Port:=465;
  IdSMTP1.Username:='ddggr';
  IdSMTP1.Password:='544554';
  IdMessage1.Body.Text:='Текст письма';
  IdMessage1.From.Text:='ddggr@yandex.ru';
  IdMessage1.Recipients.EMailAddresses:='ddggr@yandex.ru';
  IdMessage1.Subject:='Тема';
 
  IdSMTP1.Connect();
  if IdSMTP1.Connected=true then
  IdSMTP1.Send(IdMessage1);
  IdSMTP1.Disconnect
Спасибо, ну Я хоть не одинок. Это и у других не работает)
0
droider
Universal
Эксперт Pascal/Delphi
4405 / 2451 / 765
Регистрация: 04.10.2012
Сообщений: 8,911
02.11.2014, 15:24 11
Цитата Сообщение от AndHacker Посмотреть сообщение
мне нужно на Delphi 7
Я это понял. Тогда мучайтесь дальше оба, Вам виднее. Для Delphi 7 тоже есть множество примеров на данном форуме.

Цитата Сообщение от AndHacker Посмотреть сообщение
Это и у других не работает
а с чего бы ему работать? Если даже порт указан "левый".

В дополнение. Вместо
Delphi
1
if IdSMTP1.Connected=true then...
достаточно
Delphi
1
if IdSMTP1.Connected then...
Это свойство имеет значение "True" по умолчанию.
0
Алексей1990
4 / 4 / 0
Регистрация: 13.04.2013
Сообщений: 62
02.11.2014, 15:36 12
Цитата Сообщение от droider Посмотреть сообщение
а с чего бы ему работать? Если даже порт указан "левый".
Не отправляется e-mail



Кстати установил Delphi XE3 там тоже не работает
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26514 / 17806 / 7045
Регистрация: 22.10.2011
Сообщений: 31,335
Записей в блоге: 6
02.11.2014, 15:54 13
Алексей1990, про защиту соединения внимательно читал? DLL-файлы в количестве 2-х штук рядом с EXE присутствуют? Компонент TIdSSLIOHandlerSocketOpenSSL на форме есть? Связан с IdSMTP1? Настроен правильно?

Прежде, чем говорить, что что-то не работает, обычно принято проверять, все ли сделано правильно. А не тупо Copy/Paste + F9...
0
Алексей1990
4 / 4 / 0
Регистрация: 13.04.2013
Сообщений: 62
02.11.2014, 15:58 14
Цитата Сообщение от UI Посмотреть сообщение
DLL-файлы в количестве 2-х штук рядом с EXE присутствуют
вот эти ssleay32.dll pcrelib.dll libeay32.dll ?
0
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
02.11.2014, 16:09  [ТС] 15
droider,
Для Delphi 7 тоже есть множество примеров на данном форуме.
Где? Подкиньте работающий примерчик, буду очень благодарен.

а с чего бы ему работать? Если даже порт указан "левый".
Порт указан верно, на сайте https://help.mail.ru/mail-help/mailer/popsmtp написано, что используется 465 порт
SMTP — 465 (протокол шифрования SSL/TLS).

В дополнение. Вместо if IdSMTP1.Connected=true then...
В курсе, это не принципиально, когда сообщения совсем не отправляются.

Добавлено через 2 минуты
Цитата Сообщение от UI Посмотреть сообщение
Алексей1990, про защиту соединения внимательно читал? DLL-файлы в количестве 2-х штук рядом с EXE присутствуют? Компонент TIdSSLIOHandlerSocketOpenSSL на форме есть? Связан с IdSMTP1? Настроен правильно?

Прежде, чем говорить, что что-то не работает, обычно принято проверять, все ли сделано правильно. А не тупо Copy/Paste + F9...
На форме размещены 2 компонента. Компонент правильно настроен, проверял, даже скачивал разные готовые примеры и тестировал на разных компьютерах.

Добавлено через 1 минуту
Цитата Сообщение от Алексей1990 Посмотреть сообщение
вот эти ssleay32.dll pcrelib.dll libeay32.dll ?
Зачем нужно их присутствие рядом с exe файлом. Компоненты, которые я использую - стандартные. Ничего не нужно подключать.
0
FIL
Модератор
3422 / 2556 / 728
Регистрация: 19.09.2012
Сообщений: 7,926
02.11.2014, 16:27 16
Цитата Сообщение от AndHacker Посмотреть сообщение
Компонент правильно настроен
А ты не думал, что если бы это было так, то все бы работало)
0
AndHacker
13 / 13 / 10
Регистрация: 11.09.2013
Сообщений: 157
Записей в блоге: 1
02.11.2014, 16:31  [ТС] 17
Цитата Сообщение от FIL Посмотреть сообщение
А ты не думал, что если бы это было так, то все бы работало)
Да, думал Он не правильно настроен, только я не знаю что сделано не так.
0
FIL
Модератор
3422 / 2556 / 728
Регистрация: 19.09.2012
Сообщений: 7,926
02.11.2014, 16:38 18
Цитата Сообщение от AndHacker Посмотреть сообщение
только я не знаю что сделано не так.
Но воспринимать то, что пишут другие по этому вопросу, почему-то не хочешь...
0
droider
Universal
Эксперт Pascal/Delphi
4405 / 2451 / 765
Регистрация: 04.10.2012
Сообщений: 8,911
02.11.2014, 16:50 19
Так, видимо Yandex c недавнего времени перешел на SSL. Тогда кидаем на форму
IdSSLIOHandlerSocketOpenSSL1.

IdSMTP1.USeTLS выставляем utUseExplicitTLS,
idSMTP1.IOHandler выставляем IdSSLIOHandlerSocketOpenSSL1,
Port=587.
Цитата Сообщение от Алексей1990 Посмотреть сообщение
установил Delphi XE3 там тоже не работает
Ошибаетесь Специально для Вас скрин.
1
Миниатюры
Не отправляется e-mail  
droider
Universal
Эксперт Pascal/Delphi
4405 / 2451 / 765
Регистрация: 04.10.2012
Сообщений: 8,911
02.11.2014, 17:01 20
FIL, здравствуй! Будь добр, проверь у себя код, выложенный мной по ссылке ранее с теми изменениями, которые я написал выше. У тебя вроде тоже была XE3.
0
02.11.2014, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2014, 17:01

Не отправляется сообщение на e-mail
if ($s == mailsent){ if (isset($_POST)) { $mail = $_POST; if ($mail == '') {...

Почему не отправляется e-mail?
Почему не отправляется сообщение? Ошибка: An unhandled exception of type...

Не отправляется сообщение на e-mail
Ребята.. нужно научиться отправлять сообщение на e-mail через яндексовский SMTP...


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

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

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