You are on page 1of 3

1.

Display list of all Account at mufti picklist in vf page


2. When we click send an email to selected account respective contacts persons.
3. Generated a Custom HTML Email Template.
4. After sending email successful popup window message.

Add
Account-2 Account-1
Account-3
Remove

Send an Email

Successfully send an email.

Visual fgorcepage:

<apex:page Controller="SendingEmails_Con">
<apex:form >

Select Accounts <apex:selectList size="5" multiselect="true"


value="{!SelectedAccounts}">
<apex:selectOptions value="{!Selectedlist}" />
</apex:selectList>
<apex:image url="{!$Resource.AddButton}" width="80" height="50">
<apex:actionSupport event="onclick" action="{!AddAccounts}" />
</apex:image>
<apex:image url="{!$Resource.RemoveButton}" width="80" height="50">
<apex:actionSupport event="onclick" action="{!RemoveAccounts}" />
</apex:image>

<apex:selectList size="5" multiselect="true" value="{!SelectedAccounts1}">


<apex:selectOptions value="{!Selectedlist1}" />
</apex:selectList> <BR/><BR/>
<apex:commandButton value="Send A Mail" action="{!sendmail}"/>

</apex:form>
</apex:page>
Apex class:

public class SendingEmails_Con {

Public List<SelectOption> Selectedlist{set;get;} // Mutipicklist for adding accounts


Public List<String> SelectedAccounts{set;get;}
Public List<String> SelectedAccounts1{set;get;}
Public List<SelectOption> SelectedList1{set;get;}

Map<String,String> mAccounts=New Map<String,String>();


List<string> leftsidevalues = New List<String>();
List<String> rightsidevalues = New List<string>();
Public SendingEmails_Con()
{
List<Account> Acclist=[SELECT id,Name
FROM Account
Order By Name ASC]; // featch the list accounts from the database

Selectedlist=New List<SelectOption>();

for(Account Acc:Acclist)
{
Selectedlist.add(New SelectOption(Acc.id,Acc.Name));
mAccounts.Put(Acc.id,Acc.Name);
}
}

Public void AddAccounts()


{
SelectedList1= New List<SelectOption>();

for(String s:SelectedAccounts)
{
SelectedList1.add(New SelectOption(s,mAccounts.get(s)));

Public void RemoveAccounts()


{

PUblic void sendmail()


{
List<Contact> conlist =[SELECT id,Name,Email
FROM Contact
WHERE Accountid=:SelectedAccounts
AND Email<>Null];

List<Messaging.SingleEmailMessage> mails = New List<Messaging.SingleEmailMessage>();


Id templateId = [select id, name from EmailTemplate where developername ='Send_Email'].id;
for (Contact myContact : conlist) {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
List<String> sendTo = new List<String>();
sendTo.add(myContact.Email);
mail.setBccAddresses(sendTo);
mail.setSubject('Happy New Year');
String body = 'Dear ' + myContact.Name;
mail.setHtmlBody(body);
mail.setTemplateId(templateId);
mails.add(mail);
}

Messaging.sendEmail(mails);
}

You might also like