function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
y s reddyy s reddy 

SINGLE_EMAIL_LIMIT_EXCEEDED

public PageReference OnSendEmail()
{
//string strOWEA = '';
string ContactId = apexpages.currentpage().getparameters().get('ContactId');
PageReference redirect = new PageReference('/apex/enterdetailspage');
redirect.setRedirect(true);
try
{
if(dateStatusReport.Item_Date__c == null)
{
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'Room Expenditure Date field can not be blank.Please enter a Date.'));
return null;
}
if(lstTimesLog.size()==0){
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'There is no data for send status report.'));
return null;
}
else
{
lstContact = new list<contact>();
set<id> setemailAddress = new set<id>();
list<string> lstemailAddress = new list<string>();
setPMId = new set<string>();
// setTLId = new set<string>();
setRMId = new set<string>();

if(ContactId !=null)
lstContact = [select id,Name,ReportsTo.Email,Email from Contact where Id =: ContactId];
system.debug('xxxxxxxxxxxxxxxxxxxxxxx'+lstContact);

lstTimesLog = [SELECT id,Name,Contact__r.Name,Item_Date__c,Item_Names__c,Session__c,Amount__c,Contact__r.ReportsTo.Email,Contact__r.Email
FROM Item__c
WHERE Contact__c = : ContactId AND Item_Date__c =: dateStatusReport.Item_Date__c
ORDER BY Item_Date__c DESC];

string strDate;
string strContactName;
string HtmlBody = 'Daily Room Expediture';
if(lstTimesLog.size()>0)
{
for(Item__c testTimesLog : lstTimesLog)
{
Datetime TLDate = testTimesLog.Item_Date__c;
strDate = TLDate.format('dd/MM/yyyy');

strContactName = testTimesLog.Contact__r.Name;
system.debug('strContactName****'+strContactName);
}
}

HtmlBody += '<br></br>';
//HtmlBody += '<br><br><br><br><b>Daily Status Report of '+strContactName+' for '+strDate+'</b></br></br></br></br>';
HtmlBody += '<br><br><br><br><b>'+ lstContact[0].Name +' - Daily Status Report - '+'['+strDate+']'+'</b></br></br></br></br>';
HtmlBody += '<br></br>';
HtmlBody += '<br><body><table border= \"3\" width= \"100%\" cellspacing=\"0\" cellpadding=\"10\" style><tr style=\"background-color:#6D7579;color:white;\" ALIGN=\"CENTER\"><th>Item Date</th><th>Item Name</th><th>Session</th><th>Amount</th></tr></br>';


if(lstContact.size()>0)
{
for(Contact eachContact : lstContact)
{
Totalamount = 0;

updateContact = new list<Contact>();
updateContact.add(eachContact);

if(lstTimesLog.size()>0)
{
for(Item__c objTimeLog : lstTimesLog)
{

if(objTimeLog.Contact__r.Email !=null)
{
if(setPMId.contains(objTimeLog.Contact__r.Email)){
setPMId.add(objTimeLog.Contact__r.Email);
}
else
{
lstemailAddress.add(objTimeLog.Contact__r.Email);
}
}
if(eachContact.ReportsTo.Email !=null)
{
if(setRMId.contains(eachContact.ReportsTo.Email)){
setRMId.add(eachContact.ReportsTo.Email);
}
else
{
lstemailAddress.add(eachContact.ReportsTo.Email);
}
}

if(OtherEmail != null && OtherEmail != '')
{
lstemailAddress.add(OtherEmail);
}

Totalamount += objTimeLog.Amount__c;

Datetime TLDate = objTimeLog.Item_Date__c;
string RoomExpenditureDate= TLDate.format('dd/MM/yyyy');

// HtmlBody+='<tr ALIGN=\"CENTER\"><td> '+Room Expenditure Date+' </td><td>'+objTimeLog.Item_Date__c+'</td><td>'+objTimeLog.Item_Names__c+'</td><td>'+objTimeLog.Session__c+'</td><td>'+objTimeLog.Amount__c+'</td></tr>';
HtmlBody+='<tr ALIGN=\"CENTER\"><td>'+RoomExpenditureDate+'</td><td>'+objTimeLog.Item_Names__c+'</td><td>'+objTimeLog.Session__c+'</td><td>'+objTimeLog.Amount__c+'</td></tr>';


}

}

HtmlBody +='<tr ALIGN=\"LEFT\"><td COLSPAN=\"7\"><b>Total Amount in (Rs/-) : '+Totalamount+'</b></td></tr>';
HtmlBody +='</table></body>';
HtmlBody += '<br></br>';
HtmlBody +='<b>Note : </b> This is an unmonitored mailbox. Please do not reply back on this email address.';

system.debug('lstemailAddress******'+lstemailAddress);
lstemailAddress.clear();
for(wrapListForEmail s :lstEmailToAddress){
if(s.email != null){
lstemailAddress.add(s.email);
}
}

//Messaging.MassEmailMessage mail = new Messaging.MassEmailMessage ();
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
// if(strOWEA !=null)
// mail.setOrgWideEmailAddressId(strOWEA);
// mail.setToAddresses(lstemailAddress);
String[] emailToAddress = new String[] {lstContact[0].Email};
mail.setToAddresses(emailToAddress);
String[] emailCCAddress = new String[] {lstContact[0].ReportsTo.Email};
mail.setCcAddresses(emailCCAddress);
mail.setSubject(lstContact[0].Name +' - Daily Status Report - '+'['+strDate+']');
mail.setHtmlBody(HtmlBody);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
lstemailAddress.clear();
}
}
return redirect;
}
return null;
}

catch(Exception e)
{
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,e.getMessage()));
return null;
}
}

testrest97testrest97

if you sending emails ffrom code to external email addresses, there is a limit of 1000 emails per day.....that is the reason you are hitting the limit

Subhani PSubhani P

Hi,

 

Salesforce has a limit of 1000 to send in 24 hours.

 

https://login.salesforce.com/help/doc/en/salesforce_app_limits_cheatsheet.pdf

Using the API or Apex, you can send single emails to a maximum of 1,000 external email addresses per day based on Greenwich Mean Time (GMT). Single emails sent using the Salesforce application don’t count toward this limit.There s no limit on sending individual emails to contacts, leads, person accounts, and users in your organization directly from account, contact, lead, opportunity, case, campaign, or custom object pages

 

Thanks,
Subhani,
Salesforce Certified Developer,
www.mydbsync.com