@@ -205,28 +205,42 @@ private String buildDefaultBody(String eventType, Map<String, String> vars) {
205205 String date = vars .getOrDefault ("appointmentDate" , "" );
206206 String time = vars .getOrDefault ("appointmentTime" , "" );
207207 String practice = vars .getOrDefault ("practiceName" , "" );
208+ String location = vars .getOrDefault ("location_name" , "" );
208209
209- return switch (eventType ) {
210+ String innerHtml = switch (eventType ) {
210211 case "appointment_confirmation" -> String .format (
211- "<p>Dear %s,</p>" +
212- "<p>Your appointment has been confirmed.</p>" +
213- "<p><strong>Date:</strong> %s<br/>" +
214- "<strong>Time:</strong> %s<br/>" +
215- "<strong>Provider:</strong> %s</p>" +
216- "<p>We look forward to seeing you!</p>" +
217- "<p>Thank you,<br/>%s</p>" ,
212+ "<p style=\" margin:0 0 16px\" >Dear %s,</p>" +
213+ "<p style=\" margin:0 0 16px\" >Your appointment has been confirmed.</p>" +
214+ "<table style=\" border-collapse:collapse;margin:0 0 16px\" >" +
215+ "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Date:</td><td style=\" padding:4px 0\" >%s</td></tr>" +
216+ "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Time:</td><td style=\" padding:4px 0\" >%s</td></tr>" +
217+ "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Provider:</td><td style=\" padding:4px 0\" >%s</td></tr>" +
218+ (location .isBlank () ? "" : "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Location:</td><td style=\" padding:4px 0\" >" + location + "</td></tr>" ) +
219+ "</table>" +
220+ "<p style=\" margin:0 0 16px\" >We look forward to seeing you!</p>" +
221+ "<p style=\" margin:0\" >Thank you,<br/>%s</p>" ,
218222 name , date , time , provider , practice );
219223 case "appointment_reminder" -> String .format (
220- "<p>Dear %s,</p>" +
221- "<p>This is a reminder about your upcoming appointment.</p>" +
222- "<p><strong>Date:</strong> %s<br/>" +
223- "<strong>Time:</strong> %s<br/>" +
224- "<strong>Provider:</strong> %s</p>" +
225- "<p>We look forward to seeing you!</p>" +
226- "<p>Thank you,<br/>%s</p>" ,
224+ "<p style=\" margin:0 0 16px\" >Dear %s,</p>" +
225+ "<p style=\" margin:0 0 16px\" >This is a reminder about your upcoming appointment.</p>" +
226+ "<table style=\" border-collapse:collapse;margin:0 0 16px\" >" +
227+ "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Date:</td><td style=\" padding:4px 0\" >%s</td></tr>" +
228+ "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Time:</td><td style=\" padding:4px 0\" >%s</td></tr>" +
229+ "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Provider:</td><td style=\" padding:4px 0\" >%s</td></tr>" +
230+ (location .isBlank () ? "" : "<tr><td style=\" padding:4px 12px 4px 0;font-weight:bold\" >Location:</td><td style=\" padding:4px 0\" >" + location + "</td></tr>" ) +
231+ "</table>" +
232+ "<p style=\" margin:0 0 16px\" >We look forward to seeing you!</p>" +
233+ "<p style=\" margin:0\" >Thank you,<br/>%s</p>" ,
227234 name , date , time , provider , practice );
228- default -> String .format ("<p>Dear %s,</p><p>You have a new notification from %s.</p>" , name , practice );
235+ default -> String .format (
236+ "<p style=\" margin:0 0 16px\" >Dear %s,</p>" +
237+ "<p style=\" margin:0\" >You have a new notification from %s.</p>" ,
238+ name , practice );
229239 };
240+
241+ // Wrap in a responsive HTML email wrapper for proper alignment
242+ return "<div style=\" font-family:'Segoe UI',Arial,sans-serif;max-width:600px;margin:0 auto;padding:24px;color:#333\" >" +
243+ innerHtml + "</div>" ;
230244 }
231245
232246 private String extractString (Map <String , Object > data , String key ) {
0 commit comments