You need to sign in to do that
Don't have an account?
Rahul
Hello friends, I have created a send offer letter page with controller which sends offer letter as an attachment.Its working but, Its not clearing the form after clicking on send Email. The form Values are still intact.It should show a fresh form.
Please find the code :-
<apex:page standardcontroller="Contact" sidebar="false" extensions="sendofferlettercontroller" >
<apex:form >
<apex:pageBlock title="Send Offer Letter">
<p style="text-align: center; font-size: 18px; background-color: #d0e4fe;">Send An Email Attaching Impact Guru Offer Letter</p>
<apex:pageBlockSection >
<apex:inputText id="email" label="TO : " Style="width:300px;" value="{!toEmail}"/><br/>
<apex:inputText id="ccEmail" label="CC : " Style="width:300px;" value="{!ccEmail}"/><br/>
<apex:inputTextarea id="Subject" label="Subject : " Style="width:300px;" value="{!subject}" cols="80"/><br/>
<apex:inputTextarea id="Body" label="Body : " Style="width:300px;" value="{!body}" rows="10" cols="80"/><br/>
<apex:commandButton value="Send Email" action="{!sendEmail}" />
<apex:commandButton value="Cancel" action="{!cancel}"/>
</apex:pageBlockSection>
<apex:iframe src=".apex/offerletterpage?id={!parentid}"/>
</apex:pageBlock>
</apex:form>
</apex:page>
----------------------------
public class sendofferlettercontroller {
public sendofferlettercontroller() { }
public String toEmail {get;set;}
public String ccEmail {get;set;}
Public ID ParentID{get;set;}
public String subject {get;set;}
public String body {get;set;}
private final contact MyLead;
public static contact co1{get;set;}
public sendofferlettercontroller(ApexPages.StandardController controller)
{
this.MyLead=(Contact)controller.getRecord();
ParentID = apexpages.currentpage().getparameters().get('id');
}
public PageReference sendEmail() {
co1 = [select id ,name, Email from contact where id =: ApexPages.currentPage().getParameters().get('id')];
//create a mail object to send email
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toaddress = toEmail.Split(','); //using comma separator between emails
//String[] toaddress = toEmail.Split('[,;]'); //use can use Regex to mix with comma & semi colon separator
//email properties
String[] ccaddress = ccEmail.Split(',');
mail.setToAddresses(toaddress);
mail.setSubject(subject);
mail.setccAddresses(ccaddress);
mail.setUseSignature(true);
mail.setPlainTextBody(body);
// send the email'
PageReference pdf = Page.offerletterpage;
pdf.getParameters().put('id',(String)co1.id);
pdf.setRedirect(true);
blob b;
try{
b = pdf.getContent();
}catch (VisualforceException e){
b = Blob.valueOf('Some Text');
}
Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment();
efa.setFileName('ImpactGuru Offer Letter PDf'+'.pdf');
efa.setBody(b);
mail.setFileAttachments(new Messaging.EmailFileAttachment[] {efa});
try
{
// Messaging.SendEmailResult[] resultMail = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
catch(System.EmailException ex)
{
}
Datetime myDatetime = Datetime.now();
String myDatetimeStr;
Attachment a = new Attachment();
a.parentid = co1.id;
a.body = b;
a.name = (co1.Name+' - '+myDatetime.format('d - MMMM, yyyy'));
insert a;
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
Return Page.sendofferletter;
}
}
<apex:page standardcontroller="Contact" sidebar="false" extensions="sendofferlettercontroller" >
<apex:form >
<apex:pageBlock title="Send Offer Letter">
<p style="text-align: center; font-size: 18px; background-color: #d0e4fe;">Send An Email Attaching Impact Guru Offer Letter</p>
<apex:pageBlockSection >
<apex:inputText id="email" label="TO : " Style="width:300px;" value="{!toEmail}"/><br/>
<apex:inputText id="ccEmail" label="CC : " Style="width:300px;" value="{!ccEmail}"/><br/>
<apex:inputTextarea id="Subject" label="Subject : " Style="width:300px;" value="{!subject}" cols="80"/><br/>
<apex:inputTextarea id="Body" label="Body : " Style="width:300px;" value="{!body}" rows="10" cols="80"/><br/>
<apex:commandButton value="Send Email" action="{!sendEmail}" />
<apex:commandButton value="Cancel" action="{!cancel}"/>
</apex:pageBlockSection>
<apex:iframe src=".apex/offerletterpage?id={!parentid}"/>
</apex:pageBlock>
</apex:form>
</apex:page>
----------------------------
public class sendofferlettercontroller {
public sendofferlettercontroller() { }
public String toEmail {get;set;}
public String ccEmail {get;set;}
Public ID ParentID{get;set;}
public String subject {get;set;}
public String body {get;set;}
private final contact MyLead;
public static contact co1{get;set;}
public sendofferlettercontroller(ApexPages.StandardController controller)
{
this.MyLead=(Contact)controller.getRecord();
ParentID = apexpages.currentpage().getparameters().get('id');
}
public PageReference sendEmail() {
co1 = [select id ,name, Email from contact where id =: ApexPages.currentPage().getParameters().get('id')];
//create a mail object to send email
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toaddress = toEmail.Split(','); //using comma separator between emails
//String[] toaddress = toEmail.Split('[,;]'); //use can use Regex to mix with comma & semi colon separator
//email properties
String[] ccaddress = ccEmail.Split(',');
mail.setToAddresses(toaddress);
mail.setSubject(subject);
mail.setccAddresses(ccaddress);
mail.setUseSignature(true);
mail.setPlainTextBody(body);
// send the email'
PageReference pdf = Page.offerletterpage;
pdf.getParameters().put('id',(String)co1.id);
pdf.setRedirect(true);
blob b;
try{
b = pdf.getContent();
}catch (VisualforceException e){
b = Blob.valueOf('Some Text');
}
Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment();
efa.setFileName('ImpactGuru Offer Letter PDf'+'.pdf');
efa.setBody(b);
mail.setFileAttachments(new Messaging.EmailFileAttachment[] {efa});
try
{
// Messaging.SendEmailResult[] resultMail = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
catch(System.EmailException ex)
{
}
Datetime myDatetime = Datetime.now();
String myDatetimeStr;
Attachment a = new Attachment();
a.parentid = co1.id;
a.body = b;
a.name = (co1.Name+' - '+myDatetime.format('d - MMMM, yyyy'));
insert a;
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
Return Page.sendofferletter;
}
}