сбой coldfusion двух cfmail в одной программе

#coldfusion #cfmail

#coldfusion #cfmail

Вопрос:

В ColdFusion в одной программе есть два письма. Первое — это квитанция покупателю, а второе — уведомление продавцу.

 <cfmail
          from     = "#session.user#"  
          to       = "#persemail#"          
          password = "#session.password#"
          username = "#session.user#"       
          server   = "localhost"                            
          replyto  = "#session.replyto#"
          subject  = "your receipt "               
          type     = "html"   >  
      
      <cfoutput>#cart2#</cfoutput>
  </cfmail>

  <cfmail
          from     = "#session.user#"  
          to       = "#getlogo.MoxcoEmail1#"          
          password = "#session.password#"
          username = "#session.user#"       
          server   = "localhost"                            
          replyto  = "#session.replyto#"
          subject  = "you have an order"               
          type     = "html"   >  

      <p> You have just received the following order </p>          
      <cfoutput>#cart2#</cfoutput>
  </cfmail>
 

Поскольку я тестировал программу, оказалось, что «кому» в первом электронном письме, «#persemail #», совпадает с «кому» во втором электронном письме, #getlogo.MoxcoEmail1 #. ColdFusion это не нравится и возвращает ошибку о том, что поле «кому» должно присутствовать (во 2-м электронном письме). Это работает нормально, если поле «кому» отличается в двух электронных письмах, и обычно так и должно быть, но мы не можем на это рассчитывать.

Кто-нибудь знает, почему cfmail запутывается в своих юбках таким образом, когда «to» одно и то же, и, что более важно, есть ли способ это исправить?

Комментарии:

1. Первое, что я заметил, это то, что вы используете cfoutput теги внутри своих cfmail тегов. Они не нужны. Хотя маловероятно, что они вызывают описанную вами проблему, стоит попробовать посмотреть, что произойдет, если вы избавитесь от них. Кроме того, на что вы смотрите, что показывает вам значения соответствующих переменных?

2. дэн, как мне вывести переменную в cfmail без тегов cfoutput? мне просто заключить его в #?

3. <cfoutput> или <cfdump> оба будут работать. Поместите их перед <cfmail> тегами.

4. На какой версии CF и Java вы работаете? Можете ли вы воспроизвести проблему, если сведете ее к минимальному примеру cfmail с 2 cfmail s с одинаковым to адресом, жестко заданным в каждом? Я могу отправить несколько cfmail на один и тот же адрес в одном запросе без проблем, поэтому, если вы не обнаружили ошибку в конкретной версии, я подозреваю, что причина в чем-то, что вы нам не показываете, например, в каком-то коде установлено getlogo.MoxcoEmail1 значение empty или добавление пустой строки getlogo.MoxcoEmail1 в переменнуюобласть с более высоким приоритетом, во время запроса, прежде чем использовать ее во втором электронном письме.

5. @SevRoberts — Это очень разумные предложения, и я скоро их попробую. На данный момент я выполнил конечный запуск, отменив 2-е электронное письмо, если «кому» совпадает. Вероятно, им не нужно получать как квитанцию за свой заказ, так и уведомление о наличии заказа. Но я все равно хотел бы решить проблему.