// EmailTemplate取得
String DeveloperName = 'testName';
EmailTemplate mailTemplate = 'SELECT Id, Name, Subject, Body, TemplateType ' +
'FROM EmailTemplate ' +
'WHERE DeveloperName = :DeveloperName';
// Contactオブジェクトに関連する差し込み項目の置換
Messaging.SingleEmailMessage message = Messaging.renderStoredEmailTemplate(mailTemplate.Id, contact.Id, null);
// メール内容の埋込文字の置換
String mailBody = String.format(message.getPlainTextBody(), replaceValue);
// メール送信
Messaging.SendEmailResult[] results = sendMail(mailList, mailTemplate.Subject, mailBody);
// 送信結果処理
if (results[0].success) {
// 送信成功
}