Вверх ↑
Этот топик читают: Гость
Ответов: 296
Рейтинг: 1
#1: 2026-05-11 05:36:17 ЛС | профиль | цитата
Здравствуйте, подскажите как правильно сделать схему отправки картинки на почту клиента из программы в Хаясме.
Пробовал переделать родной пример SMTP под себя но что то ничего не получается.
карма: 1

0
Ответов: 1112
Рейтинг: 224
#2: 2026-05-11 09:21:52 ЛС | профиль | цитата
Gitarist писал(а):
Пробовал переделать родной пример SMTP под себя но что то ничего не получается.

Какой SMTP сервер ты использовал в своей схеме?
Проблема в том, что практически не осталось анонимных SMTP серверов (а те что остались занесены в спам-листы). Все требуют авторизации, а некоторые и специального разрешения на отправку писем в интерфейсе аккаунта.

| Название    | Адрес SMTP сервера    | Порт | Тип шифрования |
|-------------|-----------------------|------|----------------|
| Yandex | smtp.yandex.ru | 465 | TLS/SSL |
| Mail.ru | smtp.mail.ru | 465 | TLS/SSL |
| Gmail | smtp.gmail.com | 587 | TLS |
| | | 25 | TLS |
| | | 465 | SSL |
| Office 365 | smtp.office365.com | 587 | TLS |
| Outlook.com | smtp-mail.outlook.com | 587 | TLS |

--- Добавлено в 2026-05-11 10:21:13

Если установлен MS Outlook, то можно попробовать отправлять через COM интерфейс.
Add(MainForm,1495719,385,252)
{
link(onCreate,9473006:doExecute,[])
}
Add(VBJScript,13058327,539,266)
{
WorkPoints=#11:##SetScript|
Script=#
UseName=0
}
Add(FormatStr,14851356,483,266)
{
DataCount=3
Mask="Const PR_ATTACH_MIME_TAG = "http://schemas.microsoft.com/mapi/proptag/0x370E001E"\r\nConst PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001E"\r\n\r\nSet objOutlook = CreateObject("Outlook.Application")\r\nSet objMail = objOutlook.CreateItem(0)\r\n\r\nobjMail.Subject = "%2"\r\nobjMail.To = "%1"\r\n\r\nSet objAttachments = objMail.Attachments\r\nSet objAttachment = objAttachments.Add("%3")\r\n\r\nSet oPA = objAttachment.PropertyAccessor\r\noPA.SetProperty PR_ATTACH_MIME_TAG, "image/jpeg"\r\noPA.SetProperty PR_ATTACH_CONTENT_ID, "my-unique-id"\r\n\r\nobjMail.HTMLBody = "<html><body><img src='cid:my-unique-id'></body></html>"\r\n\r\nobjMail.Display \r\n' objMail.Send\r\n"
link(onFString,13058327:##SetScript,[])
link(Str1,11909134:Text,[])
link(Str2,5713602:Text,[])
}
Add(ODialog,9473006,434,266)
{
Filter="Изображения (*.jpg;*.png;*.gif)|*.jpg;*.jpeg;*.png;*.gif|Все файлы (*.*)|*.*""
link(onExecute,14851356:doString,[])
}
Add(VisualStrings,11909134,483,189)
{
@Hint=#4:Кому|
Lines=#16:mail@example.com|
Width=116
AddHint(245,-26,41,13,@Hint)
}
Add(VisualStrings,5713602,490,217)
{
@Hint=#16:Заголовок письма|
Lines=#25:Тест отправки изображения|
Width=186
AddHint(253,40,110,13,@Hint)
}


У меня всё работает

Редактировалось 4 раз(а), последний 2026-05-11 10:57:54
карма: 20

0
Ответов: 296
Рейтинг: 1
#3: 2026-05-14 03:09:53 ЛС | профиль | цитата
Gunta писал(а):
Если установлен MS Outlook, то можно попробовать отправлять через COM интерфейс.

Будет постоянно открываться окно аутлука? Совсем не хочется сторонний софт подключать. Ну если только не останется вариантов.

Gunta писал(а):
Какой SMTP сервер ты использовал в своей схеме?

smtp.mail.ru

Сгенерировал пароль на сайте мэйл.ру для сторонних приложений почты вставил в родной пример но:


-------
видимо дело в этом:




Gunta писал(а):
У меня всё работает


но как у вас тогда все работает?
Или речь только про аутлук?

Редактировалось 2 раз(а), последний 2026-05-15 08:28:24
карма: 1

0
Ответов: 1112
Рейтинг: 224
#4: 2026-05-15 17:38:10 ЛС | профиль | цитата
Gitarist писал(а):
Будет постоянно открываться окно аутлука?

Не будет если закомментировать предпоследнюю строчку скрипта, а с последней снять комментирование. Я это сделал для тестов.
Gitarist писал(а):
Сгенерировал пароль на сайте мэйл.ру для сторонних приложений почты вставил в родной пример но:

Какой порт в твоей схеме? Должен быть 465.
карма: 20

0
Ответов: 296
Рейтинг: 1
#5: 2026-05-16 08:23:42 ЛС | профиль | цитата
Gunta писал(а):
Какой порт в твоей схеме? Должен быть 465.

Да и 25 и 465 пробовал.

Уточните, у вас родной пример работает, если туда все данные свои подставить, или аутлуковский?

Редактировалось 1 раз(а), последний 2026-05-16 08:23:57
карма: 1

0
Ответов: 296
Рейтинг: 1
#6: 2026-05-16 11:43:52 ЛС | профиль | цитата
Может есть какой то способ отправлять на телефон ММС-кой или в Телегр\Вотс? Там картинка то примерно 20*70пикселей чб.
карма: 1

0
Ответов: 296
Рейтинг: 1
#7: 2026-05-16 18:25:37 ЛС | профиль | цитата
Gunta писал(а):
Не будет если закомментировать предпоследнюю строчку скрипта, а с последней снять комментирование. Я это сделал для тестов.

Сейчас ваша схема для аутлука выдает это ...

карма: 1

0
Ответов: 1112
Рейтинг: 224
#8: 2026-05-16 20:04:35 ЛС | профиль | цитата
Gitarist писал(а):
Сейчас ваша схема для аутлука выдает это ...

Ты делаешь что-то не то. Окно outlook не открывается, письмо сразу отправляется.
Проверил несколько раз.
Add(MainForm,1495719,210,196)
{
link(onCreate,9473006:doExecute,[])
}
Add(VBJScript,13058327,357,210)
{
WorkPoints=#11:##SetScript|
Script=#
UseName=0
}
Add(FormatStr,14851356,308,210)
{
DataCount=3
Mask="Const PR_ATTACH_MIME_TAG = "http://schemas.microsoft.com/mapi/proptag/0x370E001E"\r\nConst PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001E"\r\n\r\nSet objOutlook = CreateObject("Outlook.Application")\r\nSet objMail = objOutlook.CreateItem(0)\r\n\r\nobjMail.Subject = "%2"\r\nobjMail.To = "%1"\r\n\r\nSet objAttachments = objMail.Attachments\r\nSet objAttachment = objAttachments.Add("%3")\r\n\r\nSet oPA = objAttachment.PropertyAccessor\r\noPA.SetProperty PR_ATTACH_MIME_TAG, "image/jpeg"\r\noPA.SetProperty PR_ATTACH_CONTENT_ID, "my-unique-id"\r\n\r\nobjMail.HTMLBody = "<html><body><img src='cid:my-unique-id'></body></html>"\r\n\r\n' objMail.Display \r\nobjMail.Send\r\n"
link(onFString,13058327:##SetScript,[])
link(Str1,11909134:Text,[])
link(Str2,5713602:Text,[])
}
Add(ODialog,9473006,259,210)
{
Filter="Изображения (*.jpg;*.png;*.gif)|*.jpg;*.jpeg;*.png;*.gif|Все файлы (*.*)|*.*""
link(onExecute,14851356:doString,[])
}
Add(VisualStrings,11909134,308,133)
{
@Hint=#4:Кому|
Lines=#16:mail@example.com|
Width=116
AddHint(245,-26,41,13,@Hint)
}
Add(VisualStrings,5713602,315,161)
{
@Hint=#16:Заголовок письма|
Lines=#25:Тест отправки изображения|
Width=186
AddHint(253,40,110,13,@Hint)
}


Gitarist писал(а):
Уточните, у вас родной пример работает, если туда все данные свои подставить, или аутлуковский?

Нет не работает.


Gitarist писал(а):
Да и 25 и 465 пробовал.

Если хочешь отправить через smtp.mail.ru, то попробуй эту схему. Только подставь свои данные.
У меня нет почты на Mail.ru поэтому не помогу с настройкой.
Add(MainForm,2953706,175,245)
{
Point(onClose)
link(onCreate,9473006:doExecute,[])
link(onClose,11043750:doConsoleTerminate,[])
}
Add(FormatStr,15489562,280,259)
{
DataCount=5
Mask="$smtpServer = 'smtp.mail.ru'\r\n$smtpPort = 465\r\n$username = '%1' \r\n$password = '%2' \r\n$to = '%3' \r\n$subject = '%4'\r\n$imgPath = '%5'\r\n\r\n$mail = New-Object System.Net.Mail.MailMessage\r\n$mail.From = $username\r\n$mail.To.Add($to)\r\n$mail.Subject = $subject\r\n\r\n$htmlBody = """<html><body><img src='cid:my-unique-id'></body></html>"""\r\n\r\n$alternateView = [System.Net.Mail.AlternateView]::CreateAlternateViewFromString($htmlBody, $null, 'text/html')\r\n\r\nif (Test-Path $imgPath) {\r\n $lr1 = New-Object System.Net.Mail.LinkedResource($imgPath, 'image/jpeg')\r\n $lr1.ContentId = 'my-unique-id'\r\n $alternateView.LinkedResources.Add($lr1)\r\n}\r\n\r\n$mail.AlternateViews.Add($alternateView)\r\n\r\n# Настройка SMTP-клиента\r\n$smtp = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)\r\n$smtp.EnableSsl = $true\r\n$smtp.Credentials = New-Object System.Net.NetworkCredential($username, $password)\r\n\r\ntry {\r\n $smtp.Send($mail)\r\n Write-Host 'Письмо успешно отправлено!' \r\n}\r\ncatch {\r\n Write-Host """Ошибка отправки: $_"""\r\n}\r\nfinally {\r\n $mail.Dispose()\r\n $smtp.Dispose()\r\n}\r\n"
link(onFString,11043750:doConsoleExec,[])
link(Str1,15018997:Text,[])
link(Str2,10273523:Text,[])
link(Str3,11909134:Text,[])
link(Str4,5713602:Text,[])
}
Add(WinExec,11043750,350,245)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
link(onConsoleResult,10145926:doWork2,[])
link(onConsoleError,10145926:doWork3,[(396,272)])
}
Add(Memo,5177466,462,259)
{
Left=75
Top=45
Width=280
Height=200
Align=5
Font=[Lucida Console,12,0,0,204]
Antialiased=1
ScrollBars=3
}
Add(Charset,5120510,413,259)
{
link(onCharset,5177466:doAdd,[])
}
Add(HubEx,10145926,392,259)
{
link(onEvent,5120510:doCharset,[])
}
Add(ODialog,9473006,224,259)
{
Filter="Изображения (*.jpg;*.png;*.gif)|*.jpg;*.jpeg;*.png;*.gif|Все файлы (*.*)|*.*""
link(onExecute,15489562:doString,[])
}
Add(VisualStrings,11909134,294,147)
{
@Hint=#4:Кому|
Lines=#20:receiver@example.com|
Width=130
AddHint(271,1,41,13,@Hint)
}
Add(VisualStrings,5713602,301,175)
{
@Hint=#16:Заголовок письма|
Lines=#25:Тест отправки изображения|
Width=186
AddHint(265,3,110,13,@Hint)
}
Add(VisualStrings,15018997,280,91)
{
@Hint=#20:Ваш email на Mail.ru|
Lines=#18:your_email@mail.ru|
Width=116
AddHint(287,-2,112,13,@Hint)
}
Add(VisualStrings,10273523,287,119)
{
@Hint=#31:Пароль приложения (16 символов)|
Lines=#16:abcdefghijklmnop|
Width=95
AddHint(278,1,192,13,@Hint)
}


Редактировалось 3 раз(а), последний 2026-05-16 20:10:32
карма: 20

0
Ответов: 296
Рейтинг: 1
#9: 2026-05-17 04:27:07 ЛС | профиль | цитата
Gunta писал(а):
Если хочешь отправить через smtp.mail.ru, то попробуй эту схему. Только подставь свои данные.

Эта схема в Memo вообще у меня ничего не пишет. Письмо не отправляется (..


Gunta писал(а):
Ты делаешь что-то не то. Окно outlook не открывается, письмо сразу отправляется.
Проверил несколько раз.


А эта схема, которая для аутлука, уже что то пытается, но не отправляет по причине кавычек в адресе почты, в FormatStr посмотрел, что то не вижу там одинарных кавычек, значит где то на другом этапе формируются.

Скриншоты






Справку нажимал, но сделать ниче не получается. окно не активно





Окно аутлука, "отправленные"




Редактировалось 9 раз(а), последний 2026-05-17 04:46:57
карма: 1

0
Ответов: 1112
Рейтинг: 224
#10: 2026-05-17 06:52:42 ЛС | профиль | цитата
Только что отправил себе на yandex почту из hiasm . Всё пришло практически моментально.
Никаких одинарных кавычек у меня не появляется. Всплывающих предупреждающих окон у меня не выскакивает.

Outlook
Yandex mail

Редактировалось 2 раз(а), последний 2026-05-17 06:54:51
карма: 20

0
Ответов: 296
Рейтинг: 1
#11: 2026-05-17 13:53:40 ЛС | профиль | цитата
У вас Win 10, Outlook 2016?
карма: 1

0
Ответов: 1112
Рейтинг: 224
#12: 2026-05-17 14:17:30 ЛС | профиль | цитата
Gitarist писал(а):
У вас Win 10, Outlook 2016?

У меня
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2432
- MS Office 365

Для VBSJcript версия офиса не так важна.
карма: 20

0
Ответов: 296
Рейтинг: 1
#13: 2026-05-17 20:00:56 ЛС | профиль | цитата
Gunta писал(а):
У меня
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2432
- MS Office 365

Для VBSJcript версия офиса не так важна.

Эх, у меня практически то же самое, за исключением Office 365. Не получается отправить короче..
Может есть какой то другой способ?
карма: 1

0
Ответов: 296
Рейтинг: 1
#14: 2026-05-20 03:55:05 ЛС | профиль | цитата
Gunta писал(а):
Если хочешь отправить через smtp.mail.ru, то попробуй эту схему. Только подставь свои данные.
У меня нет почты на Mail.ru поэтому не помогу с настройкой.

Схема эта ваша, оказывается, рабочая!
А дело было вот в чем... Мемо пустое было потому что Powershell ничего не выдавал, ни ошибку ни удачу при отправке. Оказывается нужно было подождать пока он закончит попытки отправки письма и выдаст строку что у него ничего не получилось, а это немало минуты 3-4. А я думал у меня тупо ничего не работает, в мемо ничего не идет. Короче дело в порте mail.ru не 465 а 587 нужно использовать, и тогда всё поёт и пляшет.

+++



Редактировалось 1 раз(а), последний 2026-05-20 03:56:12
карма: 1

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)