Можете ли вы использовать часть темы электронного письма для заполнения поля «Кому» в точке исходящей электронной почты в муле?

У меня есть поток электронной почты на электронную почту, который должен отправлять определенным отправителям в зависимости от темы электронной почты. Я использовал #[message.inboundProperties.subject.substring(40,3) для получения значения, но это закончилось ошибкой. Я не уверен, какую функцию использовать для получения нужного мне значения от субъекта, так как номер заказа также есть. Какие-нибудь советы? Все необходимые мне значения находятся в строке темы на данный момент.

Кроме того, могу ли я использовать это значение для создания тела сообщения электронной почты?

Кому: [Отправитель]

Привет [Отправитель]

Ваш заказ № [Заказ] был успешно импортирован

Спасибо Мул


person Paul D.    schedule 05.03.2016    source источник


Ответы (1)


Первый вопрос, который приходит на ум, откуда вы берете Subject ? Это фиксированный оператор?

То, что вы можете сделать, это наоборот. Вы можете сохранить [Order] и [Sender] в переменных потока, а затем создать из них строку темы и тело письма.

Например, позвольте вам сохранить [Order] в переменной потока следующим образом:

<set-variable variableName="Order" value="#[message.inboundProperties.'order']" doc:name="Variable"/>

и [Sender] в другой переменной потока: -

<set-variable variableName="Sender" value="[email protected]" doc:name="Variable"/>

Затем вы можете отправить [Order] и [Sender] в строке темы :-

Hi #[flowVars.Sender.split('@')[0]] your order number #[flowVars.Order] is ready

И в теле письма вы можете написать следующее: -

Hi #[flowVars.Sender.split('@')[0]]

Your order no#[flowVars.Order] was successfully imported

Thanks Mule

Обратите внимание, что я использовал flowVars.Sender.split('@')[0], чтобы получить имя отправителя с адреса электронной почты... ссылка: - Как извлечь имя пользователя из адреса электронной почты с помощью javascript?

person Anirban Sen Chowdhary    schedule 05.03.2016
comment
Привет, Анирбан, спасибо за полезное предложение. Я сейчас придерживался той же логики. Кстати, как вы пишете тело электронной почты, так как я вижу только поля заголовка в исходящей точке SMTP. Кроме того, вы правы, я пытаюсь получить значение из подстроки темы. Проблема может возникнуть только тогда, когда это изменится. Я ищу, как получить значение из конца строки темы для моего количества подстрок. У вас есть идеи для этого? Еще раз спасибо, так как я все еще изучаю манипуляции с мулами и струнами. - person Paul D.; 05.03.2016
comment
Вы можете установить полезную нагрузку для установки тела электронной почты... Полезная нагрузка Mule служит телом электронной почты. Если вы хотите отформатировать тело электронной почты, вы можете обратиться сюда: - stackoverflow.com/questions/26178799/ и, кстати, это очень плохая идея для извлечения значения из длинной строки темы и это тоже не фиксированная длина ... вы можете иметь значение отправителя с собой и можете поместить его в строку темы в конце, сделав это другим способом - person Anirban Sen Chowdhary; 05.03.2016
comment
Еще раз спасибо, приму к сведению все ваши предложения. У меня нет другого способа получить отправителя и номер заказа, так как он поступает из внешней системы, которая помещает его в строку темы. Есть ли у вас какие-либо идеи о том, как прочитать это с последнего символа, поскольку последняя строка будет отметкой времени, а предшествующая - это значение, которое мне нужно. Еще раз спасибо - person Paul D.; 05.03.2016
comment
Импорт XML со склада выполнен успешно: Knauff_ROC_3510254_0403201610290345.xml — это мое имя файла, и мне нужно получить «ROC и номер после него для заказа. - person Paul D.; 05.03.2016
comment
Пожалуйста, напишите здесь всю строку темы и слово, которое нужно извлечь из нее. - person Anirban Sen Chowdhary; 05.03.2016
comment
Привет, Анирбан, я хотел бы извлечь ROC и номер заказа из строки выше. Я использовал поток выбора, чтобы различать успех и неудачи, чтобы получить фиксированную длину, но я считаю, что будет лучше получить ее из подстроки последнего символа. - person Paul D.; 05.03.2016
comment
Кроме того, я вижу, что предыдущие вложения включаются в новую почту. Есть ли способ удалить и это? - person Paul D.; 05.03.2016
comment
Вам нужно использовать <remove-attachment/>, чтобы удалить вложение предыдущего вложения. Вот несколько ссылок для извлечения слова из темы с использованием кода Java... для справки: - codereview.stackexchange.com/questions/90474/ вы можете использовать компонент Java или компонент выражения для Сделай так - person Anirban Sen Chowdhary; 05.03.2016
comment
Спасибо друг! вы очень помогли. Мне удается заставить его работать. Это еще не так красиво и все еще нуждается в тонкой настройке, но это отличное начало. хорошая вещь. Спасибо еще раз - person Paul D.; 06.03.2016