Osadz logo w mailach, popraw naglowek i nadaj adresy krokom logowania
Deploy Polska Lokalnie / deploy (push) Successful in 12s
Deploy Polska Lokalnie / deploy (push) Successful in 12s
Maile: - Logo jest zalacznikiem inline (cid:) zamiast obrazka z adresu serwisu. Wczesniej w mailach z lokalnego srodowiska (i w programach blokujacych obrazki z zewnatrz) w miejscu logo byla ikona bledu. Usuniety tekst zastepczy, ktory dublowal napis "Polska Lokalnie". Naglowek: - Menu nie nachodzi na logo ani panel przy zadnej szerokosci 1110-1920 px. Ponizej 1560 px "Ulubione" to samo serce (nazwa w dymku), mniejsze odstepy i przycisk "Dodaj ogloszenie" bez sztywnej szerokosci; w 1101-1270 px mniejszy napis logo i tekst przycisku. Logowanie i rejestracja (standard routingu): - Kazdy krok ma wlasny adres: /logowanie, /logowanie/nie-pamietam-hasla, /rejestracja, /rejestracja/osoba-prywatna, /rejestracja/firma, /rejestracja/sprawdz-poczte. Dzialaja F5, Wstecz/Dalej i nowa karta, formularz czysci sie takze przy Wstecz/Dalej, a cel powrotu po zalogowaniu nie ginie przy przejsciach miedzy krokami. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -132,7 +132,7 @@ public class AccountEmailService {
|
||||
+ "<div style=\"max-width:560px;margin:0 auto;padding:24px 12px;font-family:Arial,Helvetica,sans-serif;color:#24344b;\">"
|
||||
// Naglowek z logo + nazwa
|
||||
+ "<div style=\"background:#0f2340;border-radius:14px 14px 0 0;padding:20px 24px;\">"
|
||||
+ "<img src=\"" + baseUrl + "/favicon.png\" width=\"34\" height=\"34\" alt=\"Polska Lokalnie\""
|
||||
+ "<img src=\"cid:" + EmailSender.LOGO_CID + "\" width=\"34\" height=\"34\" alt=\"\""
|
||||
+ " style=\"vertical-align:middle;border-radius:8px;\">"
|
||||
+ "<span style=\"vertical-align:middle;margin-left:10px;font-size:20px;font-weight:bold;color:#ffffff;\">"
|
||||
+ "Polska <span style=\"color:#35d38a;\">Lokalnie</span></span>"
|
||||
|
||||
@@ -5,6 +5,7 @@ import jakarta.mail.internet.MimeMessage;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Properties;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -18,6 +19,14 @@ import pl.polskalokalnie.mailconfig.SmtpConfig;
|
||||
@Component
|
||||
public class EmailSender {
|
||||
|
||||
/**
|
||||
* Logo serwisu osadzone w samym mailu (obrazek inline). Szablon odwoluje sie do niego przez
|
||||
* src="cid:...", wiec logo nie zalezy od pobierania z adresu serwisu - dziala tez w mailach
|
||||
* ze srodowiska lokalnego i w programach, ktore blokuja obrazki z zewnatrz.
|
||||
*/
|
||||
public static final String LOGO_CID = "polskalokalnie-logo";
|
||||
private static final String LOGO_RESOURCE = "mail/logo.png";
|
||||
|
||||
public SendResult send(SmtpConfig config, String to, String subject, String htmlBody) {
|
||||
if (config == null || config.getHost() == null || config.getHost().isBlank()
|
||||
|| config.getUsername() == null || config.getUsername().isBlank()) {
|
||||
@@ -26,11 +35,7 @@ public class EmailSender {
|
||||
try {
|
||||
JavaMailSenderImpl mailSender = buildMailSender(config);
|
||||
MimeMessage message = mailSender.createMimeMessage();
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, false, StandardCharsets.UTF_8.name());
|
||||
helper.setFrom(fromAddress(config));
|
||||
helper.setTo(to);
|
||||
helper.setSubject(subject == null ? "" : subject);
|
||||
helper.setText(htmlBody, true);
|
||||
fillMessage(message, fromAddress(config), to, subject, htmlBody);
|
||||
mailSender.send(message);
|
||||
String messageId = message.getMessageID();
|
||||
return SendResult.ok(messageId);
|
||||
@@ -39,6 +44,20 @@ public class EmailSender {
|
||||
}
|
||||
}
|
||||
|
||||
// Tresc HTML; gdy szablon uzywa logo (cid:), wiadomosc jest wieloczesciowa z logo jako zalacznikiem inline.
|
||||
void fillMessage(MimeMessage message, InternetAddress from, String to, String subject, String htmlBody)
|
||||
throws jakarta.mail.MessagingException {
|
||||
boolean withLogo = htmlBody != null && htmlBody.contains("cid:" + LOGO_CID);
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, withLogo, StandardCharsets.UTF_8.name());
|
||||
helper.setFrom(from);
|
||||
helper.setTo(to);
|
||||
helper.setSubject(subject == null ? "" : subject);
|
||||
helper.setText(htmlBody, true);
|
||||
if (withLogo) {
|
||||
helper.addInline(LOGO_CID, new ClassPathResource(LOGO_RESOURCE), "image/png");
|
||||
}
|
||||
}
|
||||
|
||||
private JavaMailSenderImpl buildMailSender(SmtpConfig config) {
|
||||
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
|
||||
mailSender.setHost(config.getHost());
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.7 KiB |
Reference in New Issue
Block a user