Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Scheduled job for email cleanup

Rashmi11
Tera Contributor

I want to create a scheduled job to delete all undelivered emails for today. Tried doing this with below script but its not working:

var emailGr = new GlideRecord('sys_email');
emailGr.addEncodedQuery('sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^sys_idISNOTEMPTY^subject=Undelivered Mail Returned to Sender');
emailGr.query();
var count = emailGr.getRowCount();
while(emailGr.next()){
var grReport = emailGr.sys_id.getRefRecord();
if(grReport.isValidRecord())
grReport.deleteRecord();
}

1 ACCEPTED SOLUTION

Community Alums
Not applicable

Hi @Rashmi ,

Something like below should work. Elevate your privileges and execute below script from background.

var gr=new GlideRecord('sys_email');

gr.addQuery('type','send-ready');

gr.deleteMultiple();

 

You can also change the type to send-ignored rather than deleting those.

Mark my answer correct & Helpful, if Applicable.

Thanks,

Sandeep

View solution in original post

6 REPLIES 6

Mark Roethof
Tera Patron
Tera Patron

Hi there,

Have you considered using a Scheduled Flow instead? Zero code involved.

If my answer helped you in any way, please then mark it as helpful.

Kind regards,
Mark
2020-2022 ServiceNow Community MVP
2020-2022 ServiceNow Developer MVP

---

LinkedIn
Community article, blog, video list

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

Mark Roethof
Tera Patron
Tera Patron

You could also consider using the Auto Flush table [sys_auto_flush].

If my answer helped you in any way, please then mark it as helpful.

Kind regards,
Mark
2020-2022 ServiceNow Community MVP
2020-2022 ServiceNow Developer MVP

---

LinkedIn
Community article, blog, video list

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

Auto flush cannot be used for extensions and sys_email is extension under table rotations

Community Alums
Not applicable

Hi @Rashmi ,

Something like below should work. Elevate your privileges and execute below script from background.

var gr=new GlideRecord('sys_email');

gr.addQuery('type','send-ready');

gr.deleteMultiple();

 

You can also change the type to send-ignored rather than deleting those.

Mark my answer correct & Helpful, if Applicable.

Thanks,

Sandeep