Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Dynamic Date in Subject and email body

Avatar

Level 2

Hi everyone,

I'm new to Adobe Campaign Manager and I'm trying to use dynamic date in the email subject and email body. By dynamic date I meant is - days in month followed by month name - i.e. 30 September, 31 October and so on. Also, needs to consider February as a special case. Can anyone please tell me how I can do this in the email template? I can create HTML file and use javascript within the HTML but I'm not sure whether it is permissible to use such HTML as email delivery HTML in ACM. Also, what can be done for subject line with such dynamic date ? 

Your help and guidance will really help me.

1 Accepted Solution

Avatar

Correct answer by
Level 6

Another implementation way

<%
function daysInMonth(today) {
     return new Date(today.getFullYear(), today.getMonth(), 0).getDate();
}
var today = new Date();
%>

<%= daysInMonth(today) %> <%= formatDate (today, "%Bl") %>

 

View solution in original post

6 Replies

Avatar

Level 2

Thank you for revert.

I used below mentioned approach but it didn't work out. Can you plz tell me why?

 

 

Last day of the month is:   
      <%
function daysInMonth(today) {
     return new Date(today.getFullYear(), today.getMonth(), 0).getDate();
}


function month_fr(today){
  var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
  return today.toLocaleDateString("fr-FR", { month: 'long'});
}

var today = new Date();

%>

<%= daysInMonth(today) %> <%= month_fr(today) %>, <%= formatDate (today, "%4Y") %>

And for your approach, can you please replace that in this code snippet so that I can try, if possible ?


Avatar

Level 6

use this function instead of yours:
function month_fr(today){
   var monthFr:["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre","Novembre","Décembre"];
   var thisMonthFr = monthFr[today.getMonth()];
   return thisMonthFr.toString();
}

Regarding the toLocalDateString it doesn't work because it isn't implemented natively in AC
My function works a bit the same as here:
Formatting | Adobe Campaign

Avatar

Level 2

Thanks for providing the location for editing.

 

After using that snippet, email didn't come through from ACM to inbox.

 

Can you please let me know what might be the issue ?

Avatar

Level 6

If you cannot provide the error message in the broadlog of your delivery, it will be hard to help you

Avatar

Level 2

Hi Laurent,

 

After using that snippet, I analyzed the delivery and it didn't have any error. But when I sent that email as proof, it didn't come out. I don''t now where I should check logs in such case. 

 

Also, similar thing happened with some other code in the past.

Avatar

Level 6

Just open the delivery generated by your template and click on "delivery logs": the error message generated at MTA level will be shown

It seems that your onboarding on ACC has not been finished. You should ask for it or you'll be quickly limited as developper, architect or just simple user

Avatar

Level 2

Hi Laurent,

 

Also, the number of days for October is coming as "30" in place of "31" with this code. Do you know the reason ?

Avatar

Level 2

I'm not exactly sure what the issue is, as it's working for me. 

If I had to troubleshoot, I'd simply the code until it starts working, then slowly re-introduce line by line until it stops.  Then I'd know what line is causing the email to not deliver.  e.g. Do a test only containing:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
</HEAD>
<BODY>
<DIV>This is test email and needs to be done by <%
 var d = new Date(); var dateString = "Testing" %>:
<%=dateString%>  Please see to it!</DIV></BODY></HTML>

If that works, change it to:

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
</HEAD>
<BODY>
<DIV>This is test email and needs to be done by <%
 var d = new Date(); var m = d.getMonth(); var dateString = "Testing" %>:
<%=dateString%>  Please see to it!</DIV></BODY></HTML>

 

Once the delivery stops sending, you'll know what line is the problem.

 

Also, I'm presuming you're using AC Classic and not Standard, correct?  What build?

Lastly, try to find the delivery that was generated under Campaign Management > Deliveries.  (Or elsewhere)  If it failed to deliver, you'll see it failed and can view the audit log for specifics about why it isn't sending.

Avatar

Level 2

I'm using AC Classic 7.0.19.1 build

 

I'm not sure why but I can send test emails. but not with any condition. I did check deliveries but couldn't find anything. I'm trying to send such email via "send a proof". so I think deliveries aren't there. While I try to send this email as a proof, there isn't any error while I analyze it. 

Avatar

Level 2

I just tried to use 

<%=formatDate(getCurrentDate(),"%2D %Bl %4Y")%>

in the email body and that email didn't come through either. Can anyone please tell me what might be the issue ?

 

This snippet does work in the email subject.

Avatar

Level 2

Does this work?

Hello <%=recipient.firstName%>

Also, if your emails aren't coming through, they are likely failing somewhere.  You'll need to find the delivery and review the audit log.  There is probably an error message to address.

 

Typically you'll find your outbound sends in Campaign Management > Deliveries.

 

Avatar

Level 2

I kept subject as Test Email and used 

Hello <%=recipient.firstName%>

inside email body. It worked.

 

Also, I used <%= formatDate(new Date(), "%Bl") %> in the subject and Hello <%=recipient.firstName%> in the email body. It worked.

 

But I'm not sure why formatDate isn't working email body.

 

Also, I'm sending this email as proof email so I'm not able to find anything in the delivery.

Avatar

Level 2

Update:

 

Hello <%=recipient.firstName%> and month - <%= formatDate(new Date(), "%Bl") %>

 

This one also worked in the email body.

 

So I think there's issue with snippet for getting max number of days in a month.

 

Can you please help ?

Avatar

Level 2

If you go to Help > About on your toolbar, what version of ACC are you running?  (Client side and server side?)

Avatar

Level 2

Hi Anthony,

 

I need one more help. Selected answer did work. If I want to have month name in French in subject as well as email body. Do you know how to do that?