2011-07-08 2 views
0

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

// 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 = "[email protected]"; 
     String from = "[email protected]"; 
     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); 
       } 
    } 
    }  

Как работает эта электронная почта? Если я ошибаюсь в своем понимании, исправьте это.

+1

Итак ... вы не думаете, что это должно сработать, но так ли? Почему бы вам не расспрашивать об этом? :) –

ответ

5

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

Часть этого процесса состоит в том, чтобы посмотреть адрес электронной почты получателя, скажем [email protected], и выполнить поиск DNS по адресу example.com, чтобы получить записи MX этого домена. Записи смены (M) ail e (X) определяют «общедоступные» почтовые серверы для домена, куда должна быть отправлена ​​входящая почта.

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

0

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

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

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

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

Смежные вопросы