In a batch file we are updating records, and for each one we are creating a record which is sent in an email when the batch completes.
It all works swimmingly except that the csv file is sent as an HTML file with the name UpdatedEntityrecords.csv.html
This is very strange, as nowhere in my code do I append the word .html to the filename...
here is the code where the work is done:
string sEmailBody='Please see the attached file for details of the ' + RecordNo + ' records updated.';
if (iErrorsCount > 0){
sEmailBody+='\n\nThere were '+iErrorsCount +' errors during the batch';
}
sEmailBody += '\n\nThis email was sent by the batch job \'BATCH_Ent_Update_Eqn_Status\' ';
string csvHeader='Id, Name, Cif ID, TimeStamp, LastModifiedDate, Errors\n';
csvData = csvHeader + csvData;
Messaging.EmailFileAttachment csvAttc = new Messaging.EmailFileAttachment();
system.debug('Send email');
if (RecordNo>0){
//Create csv attachment
system.debug('add csv file attachment');
blob csvBlob = Blob.valueOf(csvData); //updatedEntities
string csvname= 'UpdatedEntityrecords.csv';
csvAttc.setFileName(csvname);
csvAttc.setBody(csvBlob);
}
//Create Email
Messaging.SingleEmailMessage email =new Messaging.SingleEmailMessage();
String[] toAddresses = new list<string> {'[email protected]'};
String[] ccAddresses = new list<string> {'[email protected]'};
email.setSenderDisplayName('Entity records Equation status Batch job');
email.setSubject('Entity records Equation status updated');
email.setToAddresses( toAddresses );
email.setCcAddresses( ccAddresses );
if (RecordNo>0){
email.setFileAttachments(new Messaging.EmailFileAttachment[]{csvAttc});
email.setPlainTextBody(sEmailBody);
}else email.setPlainTextBody('No records were updated by the batch process');
Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
system.debug('email sent');
so is there something else I need to do in order to have the attachment put on as a csv file, instead of a ...csv.html?