AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.03.2010, 10:01   #1  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Отправка писем из плагина
Создал плагин,который повесил на создание сущности. Пытаюсь отправить писма из него. Письма создаются,но не отправляются. Я раньше отправлял письма из кода моей страницыи все было прекрасно,теперь этот же код не работает.
Код:
InstantiateTemplateResponse instTemplateResponse = (InstantiateTemplateResponse)crmService.Execute(instTemplate);
						email emailCreate = (email)instTemplateResponse.BusinessEntityCollection.BusinessEntities[0];
						

						emailCreate.regardingobjectid = new Lookup();
						emailCreate.regardingobjectid.type = sContentType;
						emailCreate.regardingobjectid.Value = new Guid(sEntId);

						//specify the owner for the mail
						emailCreate.ownerid = new Owner();
						emailCreate.ownerid.type = EntityName.systemuser.ToString();
						emailCreate.ownerid.Value = userid;

						//created by
						emailCreate.createdby = new Lookup();
						emailCreate.createdby.type = EntityName.systemuser.ToString();
						emailCreate.createdby.Value = userid;

						activityparty apTo = new activityparty();
						apTo.partyid = new Lookup();
						apTo.partyid.type = sContentType;
						apTo.partyid.Value = new Guid(sEntId);

						emailCreate.to = new activityparty[] { apTo };

						// specify the from part of the email
						activityparty from = new activityparty();
						from.partyid = new Lookup();
						from.partyid.type = EntityName.systemuser.ToString();
						from.partyid.Value = userid;
						emailCreate.from = new activityparty[] { from };

						Guid emailId = crmService.Create(emailCreate);

						//attachment

						foreach (object oAttach in arrAttBodies)
						{
							activitymimeattachment attachment = new activitymimeattachment();
							try
							{
								annotation annot = (annotation)oAttach;
								if (annot != null)
								{
									attachment.activityid = new Lookup();
									attachment.activityid.Value = emailId;
									attachment.activityid.type = EntityName.email.ToString();

									attachment.filename = annot.filename;
									attachment.body = annot.documentbody;
									attachment.mimetype = annot.mimetype;

									Guid attachmentId = crmService.Create(attachment);
								}
							}
							catch (System.Web.Services.Protocols.SoapException ex)
							{
								//ErrorMessage("Create Attachments Error:" + ex.Detail.InnerText);
							}
						}
						//Send the Email
						try
						{
							// Create an SendEmailRequest object
							SendEmailRequest req = new SendEmailRequest();
							req.EmailId = emailId;
							req.TrackingToken = "";
							req.IssueSend = true;

							// Finally Send the email message.
							SendEmailResponse res = (SendEmailResponse)crmService.Execute(req);
							iMailsCnt++;
							if (!bResult)
								bResult = true;
						}
						catch (System.Web.Services.Protocols.SoapException ex)
						{
							//ErrorMessage("Send Mail Error:" + ex.Detail.InnerText);
						}
Письма создаются,но они по запросу SendEmailResponse не отправляются...они висят пока его не откроешь и не отправишь вручную.
Единственную разницу которую мне удалось найти это то,что в поле Createdby теперь значение SYSTEM,хотя раньше туда писался пользователь под которым создавались письма.
Ошибка ни о чем "0x80040216 An unexpected error occurred. Platform"
Вопрос вобщем-то простой WTF?
Старый 04.03.2010, 10:07   #2  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
А как Вы создаете crmService?
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
За это сообщение автора поблагодарили: Kipetcoff (1).
Старый 04.03.2010, 10:46   #3  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Код:
CrmAuthenticationToken token = new CrmAuthenticationToken();
					token.OrganizationName = sOrgan;
					token.AuthenticationType = 0;

					//Create the Service 
					CrmService crmService = new CrmService();
					crmService.Credentials = System.Net.CredentialCache.DefaultCredentials;
					crmService.PreAuthenticate = false;
					crmService.CrmAuthenticationTokenValue = token;
					crmService.Url = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("ServerUrl")) + "/2007/crmservice.asmx";
Старый 04.03.2010, 11:11   #4  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Вы абсолютно правы..дело было в методе создания сервиса...
Правильно
Код:
ICrmService crmservice = context.CreateCrmService(true);
Старый 27.05.2010, 17:28   #5  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Примерно то же самое
X++:
                    email emailCreate = new email();


                    emailCreate.regardingobjectid = new Lookup();
                    emailCreate.regardingobjectid.type = "new_business_trip";
                    emailCreate.regardingobjectid.Value = target.EntityId;

                    //specify the owner for the mail
                    emailCreate.ownerid = new Owner();
                    emailCreate.ownerid.type = EntityName.systemuser.ToString();
                    emailCreate.ownerid.Value = new Guid("9D5BF1D0-1D80-DE11-9267-000E0C4BF7BF");

                    //created by
                    emailCreate.createdby = new Lookup();
                    emailCreate.createdby.type = EntityName.systemuser.ToString();
                    emailCreate.createdby.Value = new Guid("9D5BF1D0-1D80-DE11-9267-000E0C4BF7BF");

                    activityparty apTo = new activityparty();
                    apTo.partyid = new Lookup();
                    apTo.partyid.type = EntityName.systemuser.ToString();
                    apTo.partyid.Value = new Guid("9D5BF1D0-1D80-DE11-9267-000E0C4BF7BF");

                    emailCreate.to = new activityparty[] { apTo };

                    // specify the from part of the email
                    activityparty from = new activityparty();
                    from.partyid = new Lookup();
                    from.partyid.type = EntityName.systemuser.ToString();
                    from.partyid.Value = new Guid("9D5BF1D0-1D80-DE11-9267-000E0C4BF7BF");
                    emailCreate.from = new activityparty[] { from };

                    emailCreate.subject = "Заявка на командировку";
                    emailCreate.description = "Вам отправлена заявка на командировку. Для просмотра и возможного изменения заявки перейдите в Microsoft Dynamics CRM, надстройка Командировки.";
                    
                    Guid emailId = Crmservice11.Create(emailCreate);
                    
                    //Send the Email
                    try
                    {
                        // Create an SendEmailRequest object
                        SendEmailRequest req = new SendEmailRequest();
                        req.EmailId = emailId;                       
                        req.IssueSend = true;
                        req.TrackingToken ="";
                        // Finally Send the email message.
                        Crmservice11.Execute(req);
                    }
Письмо создается, но не отправляется, ругается кажется на req.TrackingToken ="";
Ошибка: недопустимый аргумент
Старый 28.05.2010, 11:42   #6  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Skyway Посмотреть сообщение
Письмо создается, но не отправляется, ругается кажется на req.TrackingToken ="";
Ошибка: недопустимый аргумент
В Trace смотрите более подробную инфу по ошибке.
Вы этот код из плагина вызываете?
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 31.05.2010, 16:13   #7  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Да, из плагина
Походу какой-то глюк был. Скопировал код в новый проект и все заработало...
Старый 13.03.2014, 19:19   #8  
b777 is offline
b777
Участник
 
46 / 10 (1) +
Регистрация: 11.07.2013
Всем привет!

Тоже создаю письма из плагина. Отправляются нормально, но как сделать, чтоб ссылки были "кликабельными"?

Сейчас видна голый текст вида http:\\... без преобразования в ссылку.

Где-то нужно ещё задать какую-то настройку, свойство, чтоб сообщить о том, чтобы письмо было HTML-ного формата или сам текст письма надо ещё как-то кодировать, и одного SecurityElement.Escape мало?
Старый 13.03.2014, 20:43   #9  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Попробуйте добавлять ссылку не просто текстом, а в html формате вроде

Код:
<a href='http://google.com'>Click to opne google</a>
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 14.03.2014, 10:04   #10  
b777 is offline
b777
Участник
 
46 / 10 (1) +
Регистрация: 11.07.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
Попробуйте добавлять ссылку не просто текстом, а в html формате вроде

Код:
<a href='http://google.com'>Click to opne google</a>
Пробовал. Именно так она и отображается, в виде HTML-разметки.
Старый 14.03.2014, 11:14   #11  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от b777 Посмотреть сообщение
Пробовал. Именно так она и отображается, в виде HTML-разметки.
У меня такой подход работает. Видимо проблема в клиенте, которым вы проверяете почту.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 14.03.2014, 12:05   #12  
b777 is offline
b777
Участник
 
46 / 10 (1) +
Регистрация: 11.07.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
У меня такой подход работает. Видимо проблема в клиенте, которым вы проверяете почту.
Проверяю outlook-ом.
Но дело в том, что в самом CRM в карточке письма ссылка тоже должна быть кликабельной.

Может в параметрах самого SendMailRequest-а какие-то свойства указывать необходимо?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с русским текстом в теле писем после обработки E-mail Router SeregaK Dynamics CRM: Администрирование 10 21.02.2012 10:05
Привязывание писем к сущностям Казарин Александр Dynamics CRM: Функционал 4 18.08.2009 16:38
Модификая контекста плагина ZooY Dynamics CRM: Разработка 3 28.09.2008 13:52
Отправка писем из MS CRM xxxxsoft Dynamics CRM: Функционал 2 10.10.2007 14:30
Время получения и отправления писем Boris Ilyin Dynamics CRM: Функционал 0 24.05.2007 12:54
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:22.