|  28.08.2018, 14:17 | #1 | 
| Участник | D365FO: Отправка eMail из кода 
			
			Доброго времени суток. Есть необходимость написания код отправки сообщений. Думал какие проблемы, есть класс SysEmailBatch, как в AX2009 сделаю и все. Но нельзя же просто взять и отправить почту из Д-шки. В общем при отправке сообщений падает ошибка в момент дешифровки пароля smtp: Ошибка в методе Global::editEncryptedField на строке X++: return appl.DecryptForPurpose(_common.(_fieldId), common.encryptionPurpose(_fieldId));Microsoft.Dynamics.Ax.Xpp.Security.EncryptionException: Encryption error occured. Есть у кого идеи как отправлять сообщения? | 
|  | 
|  28.08.2018, 14:36 | #2 | 
| Участник | 
			
			Ну вот к примеру http://dev.goshoom.net/en/2016/05/ho...-code-in-ax-7/
		 | 
|  | 
|  28.08.2018, 14:40 | #3 | 
| Участник | Цитата: 
		
			Сообщение от skuull
			   Ну вот к примеру http://dev.goshoom.net/en/2016/05/ho...-code-in-ax-7/ То есть ошибка падает независимо от режима вызова отправки сообщение интерактивно или нет (с вызовом промежуточной формы для отправки сообщений или без неё, с формированием письма в коде) | 
|  | 
|  29.08.2018, 08:46 | #4 | 
| Участник | 
			
			Еще как показатель этой же проблемы, еще до отправки сообщений- это при открытии параметров электронной почты на вкладке параметры SMTP выдается ошибка  Неподдерживаемый тип возврата метода для метода данных passwordEdit и ошибка Encryption error occured. P.s. в параметрах пользователя введен логин и пароль другого пользователя (не мои данные). При чем отправка почты через workflow работает без проблем | 
|  | 
|  29.08.2018, 09:11 | #5 | 
| Злыдни | 
			
			Попробуйте так https://dynamicsaxgyan.wordpress.com...or-operations/ Иначе придется раздавать права на отправку от имени, как указано в https://docs.microsoft.com/en-us/dyn...onfigure-email 
				__________________ люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. Последний раз редактировалось KiselevSA; 29.08.2018 в 09:15. Причина: Дополнительная ссылка | 
|  | |
| За это сообщение автора поблагодарили: sukhanchik (2). | |
|  29.08.2018, 09:47 | #6 | 
| Участник | 
			
			Я использовал метод sendEmail на таблице SysEmailTable. Все отлично работает.
		 | 
|  | 
|  31.08.2018, 01:53 | #7 | 
| Участник | Цитата: 
		
			Сообщение от IvanS
			   В общем при отправке сообщений падает ошибка в момент дешифровки пароля smtp: Ошибка в  методе Global::editEncryptedField на строке  X++: return appl.DecryptForPurpose(_common.(_fieldId), common.encryptionPurpose(_fieldId));Microsoft.Dynamics.Ax.Xpp.Security.EncryptionException: Encryption error occured. Есть у кого идеи как отправлять сообщения?  Суть была в том, что надо было сгенерить сертификат для Data Encryption непременно с использованием Microsoft Enhanced RSA and AES Cryptographic Provider - прям жирным шрифтом выделено в инструкции. Я сдуру  решил генерить сертификат через местный CA, а не самоподписанный, говорю ему - сделай такой-то, он мне - пожалуйста! Я посмотрел, пощупал, понюхал - вроде то, что надо, разлил везде эти сертификаты, начал ставить... А через какое-то время на установке, кажется, Management Reporter полезла ошибка, связанная с криптографией, вот прям такая же информативная: Код: Microsoft.Dynamics.Ax.Xpp.Security.EncryptionException: Encryption error occured. Код: System.Security.Cryptography.CryptographicException: Invalid provider type specified Код: [Private Key] Provider Name: Microsoft RSA SChannel Cryptographic Provider Provider type: 12 Код: [Private Key] Provider Name: Microsoft Enhanced RSA and AES Cryptographic Provider Provider type: 24 | 
|  | |
| За это сообщение автора поблагодарили: sukhanchik (6), IvanS (1), vmoskalenko (2). | |
|  31.08.2018, 02:15 | #8 | 
| Участник | Цитата: Хм, загадочно, тогда дело может быть и не в сертификате шифрования данных. | 
|  | 
|  31.08.2018, 09:06 | #9 | 
| Участник | Цитата: 
		
			Сообщение от KiselevSA
			   Попробуйте так https://dynamicsaxgyan.wordpress.com...or-operations/ Иначе придется раздавать права на отправку от имени, как указано в https://docs.microsoft.com/en-us/dyn...onfigure-email | 
|  | 
|  31.08.2018, 09:10 | #10 | 
| Участник | Цитата: 
		
			Сообщение от gl00mie
			   Посмотрите с помощью PerfView, какое на самом деле лезет исключение и сообщение об ошибке. Сборка Microsoft.Dynamics.AX.Framework.EncryptionEngine.dll ловит исходные исключения и вместо них выбрасывает свою неинформативную фигню, но в трассировке всё должно быть видно. Хм, загадочно, тогда дело может быть и не в сертификате шифрования данных. | 
|  | |
| За это сообщение автора поблагодарили: sukhanchik (2), gl00mie (2). | |
|  06.09.2018, 14:25 | #11 | 
| Участник | Цитата: Проблема решается удалением всех зашифрованных данных и созданием новых занчений. Потому что шифруется и дальше конкретного SQL сервера не уходит. Майкрософт автоматизировал это в одну строку: Код: -- Clear encrypted hardware profile merchand properties update dbo.RETAILHARDWAREPROFILE set SECUREMERCHANTPROPERTIES = null where SECUREMERCHANTPROPERTIES is not null | 
|  | 
|  06.09.2018, 14:56 | #12 | 
| Участник | 
			
			В 2012 пароли для почты шифровались на каждом АОСе - не может быть тут в этом же дело? Т.е. нужно явно ввести пароль при смене АОСа. С учетом D365 без возможности выбора конкретного АОСа для входа, интересно, как фактически происходит сохранение?
		 
				__________________ Ivanhoe as is.. | 
|  | 
|  06.09.2018, 16:34 | #13 | 
| Участник | 
			
			Это еще с 2009-й началось: при шифровании пароля для почты данные сохранялись в локальном реестре, причем с привязкой к порту, на котором работает AOS. В D365 реестр используется для хранения разве что сертификатов (и поэтому они настраиваются заранее и вручную), а всё остальное хранится либо в текстовых конфигах и иных файлах в каталоге приложения, либо в базе, иначе развертывание в Azure и в Service Fabric превратилось бы в misson impossible.
		 | 
|  | 
|  | 
| 
 |