Red de conocimiento informático - Aprendizaje de programación - Cómo utilizar SSL para conectarse al buzón QQ en Java

Cómo utilizar SSL para conectarse al buzón QQ en Java

Gmail ahora ha habilitado los servicios POP3 y SMTP. A diferencia de otros buzones de correo, POP3 y SMTP proporcionados por Gmail utilizan Secure Sockets Layer SSL, por lo que el programa JavaMail normal no puede enviar ni recibir correos electrónicos. Aquí se explica cómo recibir Gmail utilizando el correo electrónico JavaMail y el código para enviar. correo electrónico:

1.[Código] GmailFetch.java?[1]?[2]?[Vista previa en pantalla completa]

01package?lius.javamail.ssl;

02?

08import?javax.mail.internet.MimeUtility;

09?

10/**

11 ?*? Se utiliza para recibir correos electrónicos de Gmail

12?

14 public class GmailFetch {

15

16 public static void main( String argv[ ]) throws?

16?

21 // Obtener el objeto de propiedad

22 Propiedades props = System.getProperties()

23 props.setProperty("mail.pop3.socketFactory.class",?SSL_FACTORY);

24?" 995");

27?

28?// Los siguientes pasos son los mismos que las operaciones normales de JavaMail

29?Session?session?=?Session.getDefaultInstance(props,null);

30?

31?p>31?//Reemplace la parte roja de la correspondencia con su cuenta de correo electrónico y contraseña

32?URLName?urln?=?new?URLName("pop3", " pop.gmail.com",995,null,

33" [Cuenta de correo electrónico]",?"" [Contraseña de correo electrónico]");

34?Storage=?session . getStore(urln);

35?Folder?getFolder("INBOX");

39inbox.open(Folder.READ_ONLY);

40FetchProfile?profile ? =?new?FetchProfile();

41profile.add(FetchProfile.Item.ENVELOPE);

42Message[]?messages?=?inbox.getMessages();

p>

43inbox.fetch(messages,?profile);

44System.out.println("Número de mensajes en la bandeja de entrada: "?+?messages.length);

45for?{

46// Remitente del correo electrónico

47String?from?=?decodeText(messages[i].getFrom()[0].toString());

48Dirección de Internet?ia?=?nueva?Dirección de Internet(de);

49

System.out.println("FROM:"?+?ia.getPersonal()+'('+ia.getAddress()+')');

50//Encabezado de correo electrónico

51System.out.println("TITLE:"?+?messages[i].getSubject());

52// Tamaño del mensaje

53System.out.println. ("TAMAÑO:"?+?messages[i].getSize());

54// Hora de envío del correo electrónico

55System.out.println("FECHA:" +? ?messages[i].getSentDate());

56}

57?}?¿finalmente?{

58¿intentar?{

59inbox.close(false);

60}?{}

61intenta?{

62store.close();

63}?catch?{

64}

65}

66

67 cadena estática protegida decodeText(texto de cadena)< / p>

68lanzamientos?

69?if?(texto?==?null)

70retorno?null;

71?if?( texto .startsWith("=?GB")?|?text.startsWith("=?GB"))

72text?=?MimeUtility.decodeText(texto);

73 ? else

74text?=?new?String(text.getBytes(" ISO8859_1"));

75?return?text;

76?}

77?

78}

2.[Código]GmailSender.java?

01paquete?lius.javamail.ssl;

02?

03importación?java.security.Security;

04import?java.util.

04import?java.util.Date ;

05importar?java.util.Properties;

06?

09importar?

12importar?javax.mail.Transport;

p>

13importar?javax.mail.internet.AddressException;

14importar?javax.mail.internet.InternetAddress;

15importar?javax.mail.internet.MimeMessage <; /p>

16?

17/**

18?*?Enviar correo electrónico mediante Gmail

19?@autor?Lau

20?*/

21public?class?GmailSender?{

22?

23?public?static?void? String[]?args)?throws?AddressException?sun.net.ssl.internal.ssl.Provider(

));

25?final?String?SSL_FACTORY?=? "javax.net.ssl.SSLSocketFactory";

26?//Obtener un objeto de atributo

27?Properties?props?=?System.getProperties();

28?props.setProperty("mail.smtp.host",?" smtp.gmail.com");

29?props.setProperty("mail.smtp.socketFactory.class",?SSL_FACTORY);

30?props.setProperty("mail.smtp.socketFactory.fallback",?" falso ");

31?

30?props.setProperty("mail.smtp.socketFactory.fallback",?" false");

31? props.setProperty("mail.smtp.port",?" 465");

32?props.setProperty("mail.smtp.socketFactory.port",?" 465");

33?props.put("mail.smtp.auth",?" true");

34?final?String?username?=?" [cuenta de correo electrónico]"; p>

35?[Cuenta de correo electrónico]";

35?final?String?password?=?"" [Contraseña del buzón]";

36?Sesión? sesión ?=?Session.getDefaultInstance(props,?new?Authenticator(){

37?protected?Autenticación con contraseña getPasswordAuthentication()?{

38?return new PasswordAuthentication(nombre de usuario, contraseña );

39?}});

40?

41/? --? Crear nuevo mensaje--

42?Mensaje msg = new MimeMessage(sesión);

43?

44?//? --? Establecer campos DESDE y HACIA--

45 ?

45? msg.setFrom(new?InternetAddress(nombre de usuario?+?"@mo168.com"));

46? msg.setRecipients(Message.RecipientType.TO,

47InternetAddress.parse("[dirección del destinatario]",false));

48? msg.setSubject("Hola");

49?msg.setText("¿Cómo?estás");

50?msg.setSentDate(new?Date()) ;

51?Transport.send(msg);

52

53?System.out.println("Mensaje?Enviado.");

54?