Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444

Не сохраняются учетные данные при отправке почты

10.08.2015, 12:52. Показов 4443. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Пытаюсь отправить почту. Проблема в том что PowerShell при запуске скрипта выдает авторизационную форму в которой нужно ввести учетные данные, хотя я их сохранил в переменную $credentials.
PowerShell
1
2
$user = "test@mail.ru" $password = Get-Content pass.txt | ConvertTo-SecureString $credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password 
Send-MailMessage -To test@mail.ru -Subject Test -Body Check -SmtpServer smtp.domen.ru -From test@mail.ru -Credential $credentials
Кликните здесь для просмотра всего текста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2015, 12:52
Ответы с готовыми решениями:

Ошибка 0х800ссс78 при отправке почты
Товарищи прошу помощи уже не знаю что и делать Outlokk выдает ошибку также как и все имеющиеся почтовики. Все сообщение проходят через...

Ошибка при отправке почты
Всем привет. Пишу приложение на ASP.NET Core. Использую MailKit для отправки почты. Проблема такова: невозможно подключиться к SMTP...

Ошибка при отправке почты!!!
Я тут написал прогу отправка почты, запускаю прогу, кликаю на Кнопку отправвить и тут есть ошибка ! Раньше это прога на XP работала,...

40
 Аватар для borne
88 / 88 / 37
Регистрация: 28.11.2012
Сообщений: 309
10.08.2015, 15:20
а если перед $password и $credentials поставить ; что нибудь изменится? или разнести их на разные строчки
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.08.2015, 15:58
Пишите пока (раз синтаксис не освоен) - каждую команду (вплоть до инструкций присвоения значений) в одну строку. Конвейер пока явно не для вас. Синтаксис неверный. В самом начале у вас идет присвоение значения двум переменным - но внезапно во всех ЯП разные инструкции должны как-то разделяться (и не пробелом). И аргументы командлету (имею ввиду ConvertTo-SecureString) так не передаются. Хотите в одну строку впихнуть как можно больше - тогда скобками оформите блок кода с присвоением, чтобы PoSH понял, чего от него хотят.
0
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
10.08.2015, 17:54  [ТС]
Power Shell если не ошибаюсь не ЯП, в bat скриптах мы же не используем ;

Добавлено через 52 секунды
поставил между предложениями ; не помогает какие еще есть разграничители?

Добавлено через 10 минут
Поставил везде конвееры-не работает, записал все в одну строку-не работает

Добавлено через 10 минут
где почитать про оформление, не могу найти
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
10.08.2015, 18:33
Cdelphi78,
Поставил везде конвееры-не работает, записал все в одну строку-не работает
Вас товарищ Garry Galler, просил сделать как раз обратное. У Вас в Одной строке и присвоение и конвеер и командлеты и параметры, попробуйте минимизировать одна строка - одна команда

Power Shell если не ошибаюсь не ЯП, в bat скриптах мы же не используем ;
Во-первых:
Если Вы все будете писать в одну строку, это будет каша, которую Вы через некоторое время и сами понять не сможете(по-собственному опыту)
Во-вторых:
Попробуйте выполнить командлет
PowerShell
1
echo test get-process
и
PowerShell
1
echo test;get-process
Сравните результат.

где почитать про оформление, не могу найти
Что Вы подразумеваете под оформлением?
0
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
10.08.2015, 20:49  [ТС]
Цитата Сообщение от v_svitere Посмотреть сообщение
Вас товарищ Garry Galler, просил сделать как раз обратное. У Вас в Одной строке и присвоение и конвеер и командлеты и параметры, попробуйте минимизировать одна строка - одна команда
Изначально у меня был записан каждый командлет в новой строке т.е 4 строки всего, просто здесь тег bash уместил в две.

Добавлено через 12 минут
Цитата Сообщение от v_svitere Посмотреть сообщение
Попробуйте выполнить командлет
В первом случае выполнилась одна команда во втором две.

Добавлено через 22 минуты
Сделал вот так:
PowerShell
1
2
3
4
$user = "test@mail.ru" 
$password = Get-Content pass.txt | ConvertTo-SecureString; 
$Credentials = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user,$password; 
Send-MailMessage -To domen@mail.ru -Subject Test -Body proverka -SmtpServer smtp.domen.ru -From test@mail.ru -Credential $Credentials
Появилось:

Code
1
2
3
4
5
6
7
Send-MailMessage : Unable to read data from the transport connection: net_io_connectionclosed.
At C:\Scripts\Post.ps1:2 char:1
+ Send-MailMessage -To test@mail.ru -Subject Test -Body proverka -SmtpSe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage],
   ion
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.08.2015, 21:41
Power Shell если не ошибаюсь не ЯП, в bat скриптах мы же не используем ;
Power Shell - как раз ЯП, хотя и shell
И даже в bat мы используем амперсанд для разделение команд в одной стоке - echo test & dir
А в VBS - :.
--------------------------------
PowerShell
2
$password = Get-Content pass.txt | ConvertTo-SecureString;
Конструкция неверная. Но понять почему - предоставляю вам. Поэкспериментируйте с другими командами передавая им таким образом аргумент.

Синтаксически более верно будет так (точки с запятой просто для демонстрации визуального отделения команд - они требуются в PoSH только для однострочной записи:
PowerShell
1
2
3
4
5
$user = "test@mail.ru";
$password = Get-Content pass.txt;
# здесь не  разделяю команд просто, чтобы показать 'магию' скобок, работающую в любых ЯП.
ConvertTo-SecureString ($credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password); 
Send-MailMessage -To test@mail.ru -Subject Test -Body Check -SmtpServer smtp.domen.ru -From test@mail.ru-Credential $credentials
Но будет ли то работать - не берусь утверждать, так как send-mailmessage ни разу не использовал. И вместо System.Management.Automation.PSCredentia l можно использовать командлет Get-Credential.

Добавлено через 5 минут
почитать про оформление
Есть файл справки внезапно на русском: "C:\Windows\Help\mui\0419\WindowsPowerSh ellHelp.chm"

Добавлено через 42 минуты
Насчет ConvertTo-SecureString - командлет ведь принимает без параметров только зашифрованную строку. А обычную только с параметрами -AsPlainText -Force.
И конвейер в данном случае все-таки работает - тут я ошибся, думая что требуются скобки, а оказывается пароль в виде простого текста нужно было с дополнительными параметрами использовать.
PowerShell
1
2
3
4
5
6
$user = "test@mail.ru";
$domen =domen@mail.ru;
$domen2 =test@mail.ru;
$password = Get-Content pass.txt|ConvertTo-SecureString  -AsPlainText -Force;
$Credentials = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user,$password;
Send-MailMessage -To $domen -Subject Test -Body proverka -SmtpServer smtp.domen.ru -From $domen2 -Credential $Credentials;
0
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
10.08.2015, 22:19  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
И даже в bat мы используем амперсанд для разделение команд в одной стоке - echo test & dir
Никогда не использовал, писал все с новой строки и все нормально было.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Конструкция неверная. Но понять почему - предоставляю вам.
Такая конструкция была на одном сайте поэтому ее и взял, к тому же чего тут не понять- вывод файла pass.txt конвертируется в secure string.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Но будет ли то работать - не берусь утверждать
Попробуйте вот здесь разобраться, тоже не получилось- Отправка почты

Добавлено через 4 минуты
Цитата Сообщение от Garry Galler Посмотреть сообщение
дополнительными параметрами использовать.
Я использовал эту конструкцию, постоянно вылазит это надоевшее уже окно. Вообще я две недели уже пытаюсь отправить почту, до этого на иностранном форуме общались, но так к никчему и не пришли.

Добавлено через 29 минут
Пароль записывал в файл этой строкой
PowerShell
1
$credentials.Password | ConvertFrom-SecureString | Set-Content pass.txt
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.08.2015, 23:06
В общем я сам тут промучился час пока получилось отправить почту самому себе.
Пароль у меня в файле plain text-ом лежит, хотя можно, конечно, и зашифровать как у вас.
Если будет ошибка по таймауту - возможно порт не тот. Я сначала 465 использовал (он вроде как для SSL у mail), потом на 25 выставил - с ним письмо отправилось. Вот рабочий вариант:
PowerShell
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
$fromUser        = "откого@mail.ru"
$toUser          = кому@yandex.ru"
$password        = Get-Content pass.txt|ConvertTo-SecureString  -AsPlainText -Force
 
 
function SendMessage ($fromUser,$toUser,$password) {
 
$credentials     = New-Object –TypeName System.Management.Automation.PSCredential($user,$password)
 
$Parameters = @{
    from       = $fromUser;
    to         = $toUser; 
    subject    = "Powershell test"; 
    body       = "Привет"; 
    attachment = "test.csv"; 
    smtpServer = "smtp.mail.ru";
    port       = 25;
    encoding   = [System.Text.Encoding]::UTF8;
    credential = $credentials
 }
 
Send-MailMessage @Parameters -UseSSL -Priority High -dno OnSuccess
}
 
SendMessage $fromUser $toUser $password
Добавлено через 7 минут
Заметил у себя одну ошибку - неинициализированная переменаня $user (должно быть $fromUser). Однако работает и так. В общем, странность какая-то. Буду позже разбираться.
1
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
10.08.2015, 23:10  [ТС]
Вот это вы тут наворотили)) Ну ладно завтра гляну, такого даже на msdn нет)

Добавлено через 3 минуты
Да странность это не то слово, казалось бы такая обыденная и нужная вещь(для чего нужен PS) а нигде толком не описывается, а если и описывается то без бубена не обойтись.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.08.2015, 23:22
До кучи еще один рабочий вариант (аргументы передаются те же самые):

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function SendMessage_2($fromUser,$toUser,$password) 
{
    $mail      = New-Object System.Net.Mail.MailMessage
    $mail.From = $fromUser
    $mail.To.Add($toUser)
    $mail.Subject = "Powershell test"
    $mail.Body    = "привет"
    $smtp         = new-object System.Net.Mail.SmtpClient("smtp.mail.ru",25)
    $smtp.Credentials = New-Object System.Net.NetworkCredential($fromUser,$password)
    $smtp.EnableSsl = $true;
    $smtp.send($mail)
 
}
 
 
SendMessage_2 $fromUser $toUser $password
0
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
11.08.2015, 09:58  [ТС]
Первый не взлетел, попробую второй)

Добавлено через 7 минут
второй тоже самое))
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.08.2015, 14:18
А через любой другой SMTP клиент вообще работает? Например, Mozilla Thunderbird.
И какие сервера используете? Если mail, gmail, yandex, то проверьте настройки по тем рекомендациям. (Можете с портами поэкспериментировать - у меня и 2525 работает.)
И как насчет политики вашего провайдера - если что-то не работает у вас, но работает у других - проблема зачастую в посреднике. Или в настройках самой корпоративной сети.
Я уж молчу про антивири - у меня тот же Avast каждое отправленное таким образом письмо проверяет и фигачит к нему свою подпись "Это сообщение проверено на вирусы антивирусом Avast"
0
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
11.08.2015, 14:46  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
А через любой другой SMTP клиент вообще работает? Например, Mozilla Thunderbird.
!
Дело не в соединении, до соединения еще недошло) ети скрипты запрашивают логин/пароль, а они не должны его запрашивать потому что учетные данные сохранены.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.08.2015, 17:33
Хорошо. Но вы уверены, что сохранили все верно? Я сохранял пароль в файле и как plaintext, так и в зашифрованном виде через
PowerShell
Read-host -Prompt "enter password" -AsSecureString |ConvertFrom-SecureString -Key @(1..32) > pass.txt
- и все прекрасно работает.
Тип строки, которая возвращает ConvertTo-SecureString должен быть System.Security.SecureString. Это проверяется простым выводом переменной $password (или той что у вас) в консоль.
Вот этой хак-функцией можно даже выдернуть пароль обратно из secure:
Кликните здесь для просмотра всего текста
PowerShell
1
2
3
4
5
6
7
8
9
10
function ConvertFromSecure {
param(
[parameter(Position=1, ValueFromPipeline=$true)]
[alias("s")]
[System.Security.SecureString]$secure
 )  
    
    $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
    [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
}

...Не знаю как вам удобнее, но я себе сделал такой "пролог" для функций отправки:
PowerShell
1
2
3
4
5
6
7
8
9
try {
    # преобразуем зашифрованную строку в SecureString
    $password=ConvertTo-SecureString (cat pass.txt) -Key @(1..32)
} catch { 
    # если она еще не зашифрована - предложим ввести строку пароля, а затем конвертируем ее в зашифрованную и запишем в файл
    Read-host -Prompt "enter password" -AsSecureString |ConvertFrom-SecureString -Key @(1..32) > pass.txt
    Sleep -Seconds 2 #  вот здесь лучше паузу поставить перед считыванием пароля из файла
    $password=ConvertTo-SecureString (cat pass.txt) -Key @(1..32)
}
1
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
11.08.2015, 17:44  [ТС]
я сохранял пароль вот этой строкой
PowerShell
$credentials.Password | ConvertFrom-SecureString | Set-Content pass.txt
Сейчас попробую по вашему сохранить, вы думаете что дело в пароле? ведь windows выдает окно авторизации, а значит это окно как то можно отключить ведь так, чтобы он не выдавал это окно.

Добавлено через 6 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
Это проверяется простым выводом переменной $password
как это сделать?

Добавлено через 2 минуты
Цитата Сообщение от Garry Galler Посмотреть сообщение
преобразуем зашифрованную строку в SecureString
Я чет то не пойму а в чем отличие от зашифрованной строки от secure string?, разве это не одно и тоже?

Добавлено через 1 минуту
Что такое try,catch,resdhost?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.08.2015, 22:11
Я правильно понимаю, что учетные данные вы сохраняли так:
PowerShell
$credentials = Get-Credential -Credential "user@domen.ru"
, где user@domen.ru - это ваш почтовый логин, с которого вы пытаетесь отправить почту, а пароль вы ввели уже в окошке?
Есть ли какая-то серьезная разница между этим и моим вариантом - утверждать не буду. В примерах делается сохранение учетных данных и так и эдак.
Для проверки: в коде после операции сохранения учетных данных добавьте с новой строки строку:
$credentials.Password или даже просто $credentials
и посмотрите что появится в консоли.

в чем отличие от зашифрованной строки от secure string
PowerShell
1
2
3
4
5
6
7
8
9
10
# наберите любой текст в появившемся окне ввода
$enc=(Read-host -AsSecureString |ConvertFrom-SecureString)
$enc
# смотрим что появилось в консоли - это и есть зашифрованная через DPAPI (Windows Data Protection API) строка
# именно она должна быть в вашем файле pass.txt
 
$secure = $enc|ConvertTo-SecureString
$secure
# а это просто защищенная строка  - то есть "текст, конфиденциальность которого необходимо сохранить. 
#Для сохранения конфиденциальности этот текст шифруется на время использования и удаляется из памяти компьютера, когда он больше не требуется"(цитата из msdn)
Read-Host
try-catch

Добавлено через 2 часа 20 минут
Попробую расписать поподробнее, что мы должны сделать с учетными данными, чтобы почтовый командлет мог с ними работать.
Кликните здесь для просмотра всего текста
1. Требуется(согласно вашей логике скрипта) сохранить пароль в виде зашифрованной строки в файле (чтобы снова и снова его не вводить):
Вариант a)
PowerShell
Read-host -Prompt "enter password" -AsSecureString |ConvertFrom-SecureString > pass.txt
Здесь появляется окно для ввода пароля. Вводим. Текст шифруется командлетом Read-host (с соответствующим параметром) в SecureString и передается командлету ConvertFrom-SecureString, который преобразует пароль из защищенной строки в зашифрованную по алгоритму DPAPI.
Далее пишем полученные данные в файл, в который должна записаться длинная строка из цифр и букв английского алфавита.

Тоже самое можно сделать так:
Вариант б)
PowerShell
$credential = Get-Credential "user@server.ru"
Здесь появляется стандартное окно windows для ввода логина и пароля. Так как логин (почтовый) мы уже указали, остается ввести только пароль.
Далее нам нужно так же как и в первом варианте преобразовать защищенную (SecureString) строку в зашифрованную и записать ее в файл.
PowerShell
$credentials.Password | ConvertFrom-SecureString | Set-Content pass.txt
На этом сохранение данных завершено.

В чем плюс конструкции, которую я предложил ранее (постом выше). Все инструкции заключены в блок try\catch:
в первом блоке строка считывается из файла и преобразуется в защищенную строку при условии, что данные уже сохранены.
Если же это первый запуск скрипта, то командлет ConvertTo-SecureString выдаст ошибку, которая будет перехвачена (скрипт при этом не будет остановлен) в блоке try{} - управление программой будет передано в блок catch{}, в котором сначала данные будут введены\сохранены и только потом считаны в переменную.
Повторный запуск скрипта уже не потребует ввода никаких данных, так как блок try{} будет выполняться без ошибок.

В случае же использования варианта с Get-Credential - без специальных проверок - это окно будет появляться при каждом запуске скрипта и требовать ввести данные.
Чтобы этого не было, нужен либо обычный логический блок
PowerShell
1
if (условие) {инструкция}
, где условием будет выступать отсутствие в файле зашифрованной строки, а инструкцией - ввод данных.
Соответственно если условие ложно - блок не будет выполняться. И никакого повторного вывода окна ввода данных.
Либо - использовать данный командлет (и запись в файл) один раз , потом просто убрать эти строчки из кода.
А дальше по логике скрипта идет уже чтение однажды сохраненного пароля из файла.
PowerShell
$password=ConvertTo-SecureString (cat pass.txt)
2. Требуется передать конструктору класса System.Management.Automation.PSCredentia l два параметра.
Один в виде обычной строки - почтовый логин, второй - пароль как SecureString (в виде простого текста не прокатит, ибо тип параметра именно такой)
Экземпляр класса сохраняется в переменной.
PowerShell
$credentials  = New-Object –TypeName System.Management.Automation.PSCredential($fromUser,$password) # String, SecureString
На этом этапе объект $credentials полностью сформирован и готов употреблению Send-MailMessage.
-----------------------------------------
Вариант с Get-Credential можно также оформить в try\catch блоки:
PowerShell
1
2
3
4
5
6
7
8
9
10
try {
    # преобразуем зашифрованную строку в SecureString
    $password=ConvertTo-SecureString (cat pass.txt)
} catch { 
    # если она еще не зашифрована - предложим ввести строку пароля, а затем конвертируем ее в зашифрованную и запишем в файл
    $credentials=Get-Credential "user@server.ru"
    $credentials.Password| ConvertFrom-SecureString  | Set-Content pass.txt
    Sleep -Seconds 1
    $password=ConvertTo-SecureString (cat pass.txt) 
}


----------------------
Возможно вы брали скрипт из этой статьи Сохранение учетных данных в PowerShell, если нет - то прочитайте ее.
1
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
11.08.2015, 23:27  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Возможно вы брали скрипт из этой статьи Сохранение учетных данных в PowerShell, если нет - то прочитайте ее.
Я как раз там все и брал только там вот нерабочее все выложено, не работает ничего, Ладно запустил Power Shell на 8.1(оказывается он здесь есть) чтобы не гонять виртуалку, завтра буду штудировать.Вам спасибо, очень внимательно относитесь к новичкам))

Добавлено через 5 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
#Для сохранения конфиденциальности этот текст шифруется на время использования и удаляется из памяти компьютера, когда он больше не требуется"(цитата из msdn)
а еще, я правильно понял что зашифрованную текст можно вытащить всегда а secure string можно вытащить когда она в памяти компьютера в остальное время она недоступна?
0
 Аватар для Cdelphi78
140 / 74 / 18
Регистрация: 21.02.2014
Сообщений: 3,444
12.08.2015, 10:15  [ТС]
этот powershel вообще шальной, то знаки какие то закрывающиеся требует то ошибки ищет в закомментироанной строке.
Миниатюры
Не сохраняются учетные данные при отправке почты  
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.08.2015, 11:16
Cdelphi78
Судя по ошибке вы чего-то в хэш-таблице $Parameters поменяли. Может выложите полный текст вашего варианта скрипта - убрав, разумеется ваши секретные учетные данные
-------------------------------------------------
зашифрованную текст можно вытащить всегда а secure string можно вытащить когда она в памяти компьютера
В общем случае так. Пока у нас есть ссылка в виде переменной на secure string и пока
мы явно не вызвали для нее метод Dispose - она какое-то время (сколько именно - непонятно, даже у Рихтера нет точного разъяснения ) будет висеть в памяти и быть доступной. После Dispose - полностью обнуляется и переменную становится невозможно использовать. Поэтому в целях безопасности стоит вызывать это метод сразу же по завершении всех манипуляций со строкой- например, в конце скрипта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2015, 11:16
Помогаю со студенческими работами здесь

Ошибка при отправке почты
Здравствуйте. Подскажите пожалуйста, в чем проблема: Есть код на отправку писем с почты майла, на почту майла (mail.ru). VS не выдает...

Зависает программа при отправке почты
Тупо зависает программа при выполнении програмы со следующим кодом: // отправитель - устанавливаем адрес и отображаемое в письме имя ...

Зависает программа при отправке почты
срабатывает метод, а в методе скрипт для отправки сообщения, и сообщение приходит не одно , а непрерывно приходят по 3-5 и программа...

CDONTS при отправке почты не подключается
Вопрос уже задавал по ASP+Exchange, не получается отослать мэил. на машинке с IIS (вин2000) есть библиотеки cdonts.dll и cdosys.dll,...

Сообщение, при отправке почты в The Bat!
Здравствуйте! Подскажите, пожалуйста, при отправке почты в The Bat выскакивает вот такое сообщение: С чем это связано? ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru