Добавление почтового сервера на VDS

Jelastic предоставляет возможность установить почтовый сервер на Вашу VDS ноду. Чтобы сделать это, просто выполните следующую инструкцию.

  1. Создание окружения и SSH соединение
  2. Для начала, создайте окружение и установите SSH соединение, как это описано в документе Виртуальный выделенный сервер с полным доступом.

  3. Установка почтового сервера
  4. Чтобы показать процесс установки почтового сервера, мы используем Postfix как пример.

    1. После установки SSH соединения введите в открывшейся консоли следующую команду:

    2. yum install postfix



    3. После этого начнется установка.
    4. Во время этого процесса Вам нужно подтвердить выполнение 2 пунктов:

      • общий размер загружаемых файлов



      • общее предупреждение



    5. Когда установка закончится, Вы можете проверить, или она прошла успешно. Для этого введите следующую команду:

    echo thisistestmail | mail -s test <your_email>


    Если установка прошла успешно, Вы получите тестовое сообщение.



  5. Отправка электронных писем

    1. Если Вы хотите, чтобы Ваши сервера могли использовать почтовый сервер, который Вы установили на VDS, нужно разрешить это в конфигурационном файле Вашего почтового сервера.
    2. Для этого откройте файл /etc/postfix/main.cf и добавьте следующие строки, указав список разрешенных ip-адресов серверов, которые Вы хотите использовать:

      mynetworks_style = host
      mynetworks = < server1 IP address>, < server2 IP address>


    3. После редактирования конфигурационного файла Вам нужно применить выполненные изменения, введя следующую команду:

    4. /etc/init.d/postfix restart

    5. Теперь Вы можете отправлять электронные письма с Ваших серверов (ip-адреса которых были прописаны в конфигурационном файле почтового сервера).
    6. Вам просто нужно добавить правильный код с электронным письмом, которое Вы хотите посылать, в конфигурационный файл Вашего приложения и развернуть его в нужном окружении. Как пример, Вы можете использовать код, представленный ниже:

      package com.mkyong.common;
      
       import java.util.Properties;
      
       import javax.mail.Message;
      import javax.mail.MessagingException;
      import javax.mail.PasswordAuthentication;
      import javax.mail.Session;
      import javax.mail.Transport;
      import javax.mail.internet.InternetAddress;
      import javax.mail.internet.MimeMessage;
      
       public class SendMailTLS {
      
       	public static void main(String[] args) {
      
       		Properties props = new Properties();
      		props.put("mail.smtp.auth", "false");
      		props.put("mail.smtp.starttls.enable", "false");
      		props.put("mail.smtp.host", "host");
      		props.put("mail.smtp.port", "25");
      
       			try {
      
       			Message message = new MimeMessage(session);
      			message.setFrom(new InternetAddress("from-email@jelastic.com"));
      			message.setRecipients(Message.RecipientType.TO,
      				InternetAddress.parse("to-email@jelastic.com"));
      			message.setSubject("Testing Subject");
      			message.setText("Text of the message");
      
       			Transport.send(message);
      
       			System.out.println("Done");
      
       		} catch (MessagingException e) {
      			throw new RuntimeException(e);
      		}
      	}
      }
      

    Это всё. Надеемся, эта инструкция будет Вам полезна!

    Примечание: Некоторые настройки могут отличаться в зависимости от Вашего хостера (например, открытые порты), в связи с этим данная инструкция может не подходить в каждом конкретном случае. Поэтому, если установить нужный функционал, используя этот документ, не получилось, свяжитесь в техподдержкой Вашего хостера для получения деталей/инструкций.

Set Up and Test Mail Server

In the current guide we are going to leverage the Postfix mail server, so follow the next steps to install it within your VPS container and verify if it works as intended.

1. Run the Postfix installer with the following yum command:

install postfix on vps

2. During the installation process, you’ll need to confirm (i.e. press and submit the y response) the following points:
  • total download size

    postfix total download size

  • importing GPG key

    postfix importing GPG key

3. When the installation is finished, you can test mail server operability with the following command:

echo thisistestmail | mail -s test {your_email}

Here, the {your_email} placeholder is an email address, the test email will be sent to.

4. Now, check the specified email inbox to ensure a letter was sent.

postfix test email

Great! Email server is installed and we can proceed to applying the appropriate configurations.

Configure Postfix Authorized Networks

For the proper workflow of the recently installed Postfix mail server, you may need to apply some settings within its main configuration file. For example, you can manually specify the  list of “trusted” clients, that will be able to relay emails through the Postfix:

1. Edit the main.cf  file, located in the etc/postfix directory with the following content:

  • when Postfix should forward emails only from the local machine, uncomment (remove # at the start of the string) the following line:

    mynetworks_style = host
  • alternatively, you can adjust the list of “trusted” clients manually using the next parameter (in this case the previous setting will be ignored):

    mynetworks = {server1 IP address}, {server2 IP address}

2. After editing configuration files, you need to reload Postfix in order to apply changes you’ve made.

/etc/init.d/postfix restart

3. Now you can send messages from the previously specified client (the local machine or the stated server(s)).

However, you also need to adjust your application to work properly with the newly installed mail server. For that, add the code of the following type to your applicatication configuration file deployed to VPS container.

package com.mkyong.common;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMailTLS {
   public static void main(String[] args) {
       Properties props = new Properties();
       props.put("mail.smtp.auth", "false");
       props.put("mail.smtp.starttls.enable", "false");
       props.put("mail.smtp.host", "host");
       props.put("mail.smtp.port", "25");
           try {
           Session session = Session.getInstance(props);
           Message message = new MimeMessage(session);
           message.setFrom(new InternetAddress("from-email@jelastic.com"));
           message.setRecipients(Message.RecipientType.TO,
               InternetAddress.parse("to-email@jelastic.com"));
           message.setSubject("Testing Subject");
           message.setText("Text of the message");
           Transport.send(message);
           System.out.println("Done");
       } catch (MessagingException e) {
           throw new RuntimeException(e);
       }
   }
}

That’s all. The mail server has been successfully adjusted to work with application deployed to VPS container.

Note:  Some settings may differ depending on the currently used Jelastic installation (i.e. hosting provider platform). Refer to the Postfix official documentation to reveal more details considering required mail server configurations.