Как работает эта программа электронной почты? - PullRequest
0 голосов
/ 08 июля 2011

Я прочитал, что контактная программа электронной почты - это почтовый сервер автора интернет-провайдера, чтобы передать ему сообщение.В следующей программе я установил успешное соединение с SMTP сервером gmail. Я хотел отправить электронное письмо от этой программы (из учетной записи Gmail) , чтобы переадресовать учетную запись.соединение с сервером переадресации.Но я успешно отправляю электронные письма.Как так ?Я только что проверил, изменив адрес на с gmail на повторный вызов, и все прошло успешно.Вот программа:

// cross mail

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

class crossmail {
   public static void main(String args[]) {
       Properties props = new Properties();
       props.put("mail.smtp.host", "smtp.gmail.com");
       props.put("mail.stmp.user", "from");
       props.put("mail.smtp.starttls.enable", "true"); 
       props.put("mail.smtp.password", "password");
       props.put("mail.smtp.auth", "true");

       Session session = Session.getDefaultInstance(props, new Athenticator() {     
     @Override
    protected PasswordAuthentication getPasswordAuthentication() {
       String username = "from";
       String password = "paassword";
              return new PasswordAuthentication("from", "paassword");
    }
        });
        String to = "me@rediff";
        String from = "from@gmail.com";
        String subject = "Testing...";
        MimeMessage msg = new MimeMessage(session);
          try {
        msg.setFrom(new InternetAddress(from));
        msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));
        msg.setSubject(subject);
        msg.setText("Test Successfull...!");
        Transport transport = session.getTransport("smtp");
        transport.send(msg);
        System.out.println("fine!!");
          }   catch(Exception exc) {
            System.out.println(exc);
              }
     }
   }    

Как работает эта программа электронной почты? Если я не прав в моем понимании, пожалуйста, исправьте это.

Ответы [ 2 ]

5 голосов
/ 08 июля 2011

Приложения для электронной почты РЕАЛЬНО связываются с сервером электронной почты получателя.Это не то, для чего они.Вместо этого они свяжутся с вашим локальным SMTP-сервером (работающим локально на том же сервере или с вашим провайдером) и передадут почту на этот сервер.Затем этот промежуточный сервер выполняет тяжелую работу по поиску того, кто обрабатывает электронную почту получателя и связывается с этим сервером.

Часть этого процесса состоит в том, чтобы просмотреть адрес электронной почты получателя, например, fred@example.com, и выполнитьDNS-запрос на example.com для получения записей MX этого домена.Эти записи (M) ail e (X) указывают «публичные» почтовые серверы для домена, на который следует отправлять входящую почту.

Это освобождает вас и ваше приложение от необходимости знать, КАК или ГДЕдоставить каждый кусок почты ... все, что вам нужно сделать, это знать, где находится ваш локальный почтовый сервер.Точно так же, как вам не нужно знать, КАК письмо от обычной почты отправляется от вас к вашему другу по переписке - все, что вам нужно, это написать адрес на конверте и бросить его в почтовый ящик.Почтовая служба заботится обо всех деталях при получении письма из пункта А в пункт Б.

0 голосов
/ 08 июля 2011

Программа входит на SMTP-сервер gmail и передает ему сообщение.Затем сервер gmail пересылает его на сервер электронной почты получателей.

SMTP - простой протокол пересылки почты

Серверы электронной почты в основном являются ретрансляционными станциями между пользователями

Я отправляю на свой почтовый серверЗатем он ищет ваш почтовый сервер и отправляет туда сообщение, а вы получаете сообщение с вашего почтового сервера.

...