I am working on a visualforce page where on click of a button i am passing some parameters in URL and fetching that in controller using ApexPages.currentPage().getParameters().get()
method.
But I am not able to get the city parameter in the below URL.
what am I doing wrong?
public with sharing class SendEmailController {
public String addlRecipients {get; set;}
public Lead ourLead {get; set;}
public EmailMessage emailMsg {get; private set;}
public String FromAddress {get;set;}
public string StreetAddress {get;set;}
public string cityName {get;set;}
public SendEmailController() {
//Getting all the parameters from the URL.
String streetAdd = ApexPages.currentPage().getParameters().get('streetAdd');
if(streetAdd != null){
StreetAddress = streetAdd;
}
string city = ApexPages.currentPage().getParameters().get('City');
system.debug('city city'+city);
if(city !=null){
cityName = city;
}
system.debug('city param'+cityName);
String leadID = ApexPAges.currentPage().getParameters().get('leadID');
if(leadID != null)
ourLead = [select id,name,Email from lead where id =:leadID];
FromAddress = 'Sample@movoto.com';
emailMsg = new EmailMessage();
}
public Attachment attachment {
get {
if (attachment==null) {
System.debug('==========> creating new empty Attachment.');
attachment = new Attachment();
}
return attachment;
}
set;
}
// send email message per the attributes specified by a user.
public PageReference send() {
try {
// now create our SingleEmailMessage to send out.
Messaging.SingleEmailMessage singleEmailMsg = new Messaging.SingleEmailMessage();
// concatenate all Bcc Addresses
if (emailMsg.BccAddress != null && emailMsg.BccAddress != '') {
singleEmailMsg.setBccAddresses(emailMsg.BccAddress.split(';'));
}
// concatenate all CC Addresses
if (emailMsg.CcAddress != null && emailMsg.CcAddress != '') {
singleEmailMsg.setCcAddresses(emailMsg.CcAddress.split(';'));
}
singleEmailMsg.setSubject(emailMsg.Subject);
singleEmailMsg.setPlainTextBody(emailMsg.TextBody);
singleEmailMsg.setTargetObjectId(ourLead.id);
singleEmailMsg.setSaveAsActivity(true); // Save this email as an acitvity in activity history.
// now add additional recipients
String[] addlToAddresses = null;
if (addlRecipients != null && addlRecipients != '') {
addlToAddresses = addlRecipients.split(';');
}
// now lets add any additional recipients to our list of recipients.
List<String> lstToAddresses = null;
if (addlToAddresses != null) {
// now append these to our main recipient.
lstToAddresses = new List<String>(addlToAddresses);
} else {
lstToAddresses = new List<String>();
}
lstToAddresses.add(emailMsg.ToAddress);
singleEmailMsg.setToAddresses(lstToAddresses);
// now we need to reset the ToAddress for our EmailMessage.
emailMsg.ToAddress += (addlRecipients != null ? ';' + addlRecipients : '');
if (attachment.Body != null) {
Messaging.EmailFileAttachment emailAttachment = new Messaging.EmailFileAttachment();
emailAttachment.setBody(attachment.Body);
emailAttachment.setFileName(attachment.Name);
singleEmailMsg.setFileAttachments(new List<Messaging.EmailFileAttachment> {emailAttachment});
}
List<Messaging.SendEmailResult> results = Messaging.sendEmail(
new List<Messaging.SingleEmailMessage> {singleEmailMsg});
// now parse our results
if (results[0].success) {
if (attachment.Body != null) {
attachment.parentId=emailMsg.Id;
insert attachment;
}
PageReference pgRef = new PageReference('/' + ourLead.Id);
pgRef.setRedirect(true);
return pgRef;
} else {
// on failure, display error message on existing page so return null to return there.
String errorMsg = 'Error sending Email Message. Details = ' + results.get(0).getErrors()[0].getMessage();
System.debug('==========> ' + errorMsg);
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, errorMsg));
return null;
}
}
catch (Exception e) {
// on failure, display error message on existing page so return null to return there.
String errorMsg = 'Exception thrown trying to send Email Message. Details = ' + e;
System.debug('==========> ' + errorMsg);
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, errorMsg));
return null;
}
return null;
}
// cancel creation of emailMessage.
public PageReference cancel() {
// no need to do anything - just return to calling page.
PageReference pgRef = new PageReference('/' + ourLead.Id);
pgRef.setRedirect(true);
return pgRef;
}
public PageReference populateTemplate() {
// we need to perform the merge for this email template before displaying to end-user.
EmailTemplate emailTemplate = [select Body, HtmlValue, Subject, DeveloperName, BrandTemplateId
from EmailTemplate where DeveloperName='Brokerage_email_template' limit 1];
// construct dummy email to have Salesforce merge BrandTemplate (HTML letterhead) with our email
Messaging.SingleEmailMessage dummyEmailMsg = new Messaging.SingleEmailMessage();
dummyEmailMsg.setTemplateId(emailTemplate.Id);
// This ensures that sending this email is not saved as an activity for the targetObjectId.
dummyEmailMsg.setSaveAsActivity(false);
// send dummy email to populate HTML letterhead in our EmailMessage object's HTML body.
String[] toAddresses = new String[]{FromAddress};
dummyEmailMsg.setToAddresses(toAddresses);
Savepoint sp = Database.setSavepoint();
Account dummyAcct = new Account(Name='dummy account');
insert dummyAcct;
Contact dummyContact = new Contact(AccountId=dummyAcct.Id);
dummyContact.FirstName = 'First';
dummyContact.LastName = 'Last';
dummyContact.Email = 'nobody@nowhere.com';
insert dummyContact;
dummyEmailMsg.setTargetObjectId(dummyContact.Id);
dummyEmailMsg.setWhatId(ourLead.Id);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {dummyEmailMsg});
// now rollback our changes.
Database.rollback(sp);
String body = dummyEmailMsg.getPlainTextBody();
system.debug('cityy::'+cityName);
system.debug('stdd::'+StreetAddress);
if(!String.isBlank(StreetAddress) && StreetAddress!= 'null')
body = body.replace('ADDR ', StreetAddress);
else{
body = body.replace('ADDR ', ' ');
}
if(cityName!=null && cityName != 'null') {
body = body.replace('CITYR', cityName);
}
else
{
body = body.replace('CITYR', ' ');
}
body = body.replace('ClientName', ourLead.name);
// now populate our fields with values from SingleEmailMessage.
emailMsg.BccAddress = UserInfo.getUserEmail();
emailMsg.Subject = dummyEmailMsg.getSubject();
emailMsg.TextBody = body;
emailMsg.ToAddress = ourLead.email;
emailMsg.FromAddress = fromAddress;
emailMsg.CcAddress = '';
return null;
}
}
#5G
before City parameter in url and try.#5G
from the URL parameter. Is there any reason for appending that in URL?#5G
is part of streetAdd param then how its coming after leadId param? Please ensure url parameters are encoded properly to make it works fine.