Languages
[Edit]
PL

Java - jak wysłać e-mail przy użyciu SMTP z pocztą w nazwa.pl?

8 points
Created by:
leila
435

W tym artykule postaram się przedstawić rozwiązanie pozwalające wysyłać maile przy uzyciu protokołu SMTP z JavaMail API oraz wykupionej usługi e-mail w nazwa.pl - rozwiązanie w jezyku Java.

Domyślnie obsługa połączeń SMTP powinna być włączona po stronie serwera.

1. Odczytanie konfiguracji

Po wejściu do usługi Active.admin powinniśmy odnaleźć konfugyrację dla naszego konta e-mail:

Active.admin dla konta e-mail - Przykład Java SMTP
Active.admin dla konta e-mail - Przykład Java SMTP

2. Utworzenie projektu i załaczenie biblioteki

Bilioteka znajduje się tutaj.

Można ją załączyć do projektu:

  • manualnie pobierając i dodając plik *.jar,
  • wklejając kod do pliku *.pom.

3. Uruchomienie kodu Java 

Uwagi: rozwiązanie testowano 01.05.2020.

Znając konfigurację możemy przekopiować kod i nanieść drobne modyfikacje:

import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties;

public class MailSender {

    // konfuguracja smtp dla naszego maila

    private static final String smtpDebug = "false";
    private static final String smtpEmail = "my-email@my-domain.com";    // ustawić
    private static final String smtpUsername = "my-email@my-domain.com"; // ustawić
    private static final String smtpPassword = "put-Pa$$word-here";      // ustawić
    private static final String smtpHost = "serverXYZXYZ.nazwa.pl";      // ustawić
    private static final String smtpPort = "465";
    private static final String smtpAuth = "true";
    private static final String smtpSecurity = "ssl";

    // funkcja wysyłająca

    public static void main(String[] args) throws MessagingException {

        String recipientEmail = "my-friend@some-domain.com"; // ustawić odbiorcę
        String emailSubject = "Wiadamość z wakacji!";        // ustawić tytuł
        String emailBody = "Cześć!, Jak się masz! ...";      // ustawić treść
        
        // logika wysyłająca
        
        Properties smtpProperties = new Properties();

        smtpProperties.put("mail.debug", smtpDebug);
        smtpProperties.put("mail.smtp.auth", smtpAuth);
        smtpProperties.put("mail.smtp." + smtpSecurity + ".enable", true);
        smtpProperties.put("mail.smtp.host", smtpHost);
        smtpProperties.put("mail.smtp.port", smtpPort);

        Authenticator authenticator = new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(smtpUsername, smtpPassword);
            }
        };

        Session session = Session.getInstance(smtpProperties, authenticator);

        InternetAddress[] replyAddresses = InternetAddress.parse(smtpEmail);
        InternetAddress[] recipientAddresses = InternetAddress.parse(recipientEmail);

        Message message = new MimeMessage(session);

        message.addFrom(replyAddresses);
        message.setRecipients(Message.RecipientType.TO, recipientAddresses);
        message.setReplyTo(replyAddresses);
        message.setSubject(emailSubject);

        Multipart multipart = new MimeMultipart();
        MimeBodyPart part = new MimeBodyPart();

        // typ wiadomości może zostać zmieniony na text/html
        part.addHeader("Content-Type", "text/plain; charset=UTF-8");
        part.setText(emailBody);

        multipart.addBodyPart(part);
        message.setContent(multipart);

        Transport.send(message);
    }
}

 

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join