Office 365 IMAP Access - PHP -- php campo con email campo con imap camp Relacionados El problema

Office 365 IMAP Access - PHP


1
vote

problema

Español

Tengo un script que básicamente accede a correo electrónico a través de IMAP y luego encuentra todo el audio .wav y descarguelos en una carpeta localmente en el servidor.

Estoy luchando para acceder a la Oficina 365 a través de IMAP.

sigue diciendo que no se pudo abrir la secuencia {Outlook.office365.com:993/imap/ssl/Novalidate-certt-inbox.

& amp;

no se puede conectar a {Outlook.office365.com:993/imap/ssl/novalidate-certt-inbox: demasiadas fallas de inicio de sesión

Ver Script completo a continuación;

  <?php      $MSG_DIR = "D:/Voicemail/Messages/";      $USER = "xx";      $PASS = "xx";        // connect to JARVIS       echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#2471b6'>Connecting to J.A.R.V.I.S.</div> <br/>";       $host = "{outlook.office365.com:993/imap/ssl/novalidate-cert}Inbox";      $mbox=imap_open($host,$USER,$PASS, NULL, 1, array('DISABLE_AUTHENTICATOR' => 'GSSAPI')) or die("Can't connect: " . imap_last_error());        // Look over mailbox      echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#2471b6'>Connection Complete...</div> <br/>";      $MC = imap_check($mbox) or die("Can't check for messages");        $overview = imap_fetch_overview( $mbox, "1:".$MC->Nmsgs, 0 ) or die( "Can't get headers");      $countThis = 0;      foreach ( $overview as $email )      {                 $subject = $email->subject;          $udate = $email->udate;          if( preg_match('/Voice Message from ([0-9]+)/', $subject, $groups) ||         preg_match('/Voice Message from ([a-zA-Z]w+)/', $subject, $groups) )          {              $filename = $MSG_DIR."/".$groups[1].date(" d-m H-i-s", $udate).".wav";                if( file_exists( $filename ) )              {                  echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;color:#000000'>Skipping $filename...</div> ";              }              else              {                  echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;color:#000000'>Extracting $filename...</div> ";                   $structure = imap_fetchstructure($mbox,$email->uid, FT_UID) or die( "could not fetch structure");                     foreach ( $structure->parts as $part )                    {                      if( $part->subtype == "X-WAV" || $part->subtype=="WAV" || $part->subtype=="OCTET-STREAM")                       {                          // found it!                          $body = imap_base64( imap_fetchbody( $mbox, $email->uid, 2, FT_UID ) ) or die( "Could not fetch part");                          file_put_contents( $filename, $body );                      }                      else                      {                      }                   }              }              $countThis++;          }      }      echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#2471b6'></br>Found $countThis Voicemails  </div>";      echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#ff0000'></br>Disconnecting from J.A.R.V.I.S.  </div>";        imap_close($mbox);    ?>   

Esto fue utilizado anteriormente en Exchange 2010.

Espero que alguien pueda ayudar.

¡Gracias!

Original en ingles

I've got a script that basically access email through IMAP and then finds all the .wav audio and download them into a folder locally on the server.

I'm struggling to get it to access Office 365 through IMAP.

Keeps saying Couldn't open stream {outlook.office365.com:993/imap/ssl/novalidate-cert}Inbox.

&

Cannot connect to {outlook.office365.com:993/imap/ssl/novalidate-cert}INBOX: Too many login failures

See whole script below;

<?php      $MSG_DIR = "D:/Voicemail/Messages/";      $USER = "xx";      $PASS = "xx";        // connect to JARVIS       echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#2471b6'>Connecting to J.A.R.V.I.S.</div>\n<br/>";       $host = "{outlook.office365.com:993/imap/ssl/novalidate-cert}Inbox";      $mbox=imap_open($host,$USER,$PASS, NULL, 1, array('DISABLE_AUTHENTICATOR' => 'GSSAPI')) or die("Can't connect: " . imap_last_error());        // Look over mailbox      echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#2471b6'>Connection Complete...</div>\n<br/>";      $MC = imap_check($mbox) or die("Can't check for messages");        $overview = imap_fetch_overview( $mbox, "1:".$MC->Nmsgs, 0 ) or die( "Can't get headers");      $countThis = 0;      foreach ( $overview as $email )      {                 $subject = $email->subject;          $udate = $email->udate;          if( preg_match('/Voice Message from ([0-9]+)/', $subject, $groups) ||         preg_match('/Voice Message from ([a-zA-Z]\w+)/', $subject, $groups) )          {              $filename = $MSG_DIR."/".$groups[1].date(" d-m H-i-s", $udate).".wav";                if( file_exists( $filename ) )              {                  echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;color:#000000'>Skipping $filename...</div>\n";              }              else              {                  echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;color:#000000'>Extracting $filename...</div>\n";                   $structure = imap_fetchstructure($mbox,$email->uid, FT_UID) or die( "could not fetch structure");                     foreach ( $structure->parts as $part )                    {                      if( $part->subtype == "X-WAV" || $part->subtype=="WAV" || $part->subtype=="OCTET-STREAM")                       {                          // found it!                          $body = imap_base64( imap_fetchbody( $mbox, $email->uid, 2, FT_UID ) ) or die( "Could not fetch part");                          file_put_contents( $filename, $body );                      }                      else                      {                      }                   }              }              $countThis++;          }      }      echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#2471b6'></br>Found $countThis Voicemails\r\n</div>";      echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;font-weight: bold;color:#ff0000'></br>Disconnecting from J.A.R.V.I.S.\r\n</div>";        imap_close($mbox);    ?> 

This was previously used on Exchange 2010.

Hope someone can help.

Thank you!

        

Lista de respuestas

1
 
vote

fijo!

fue la contraseña.

PHP no le gusta $ en la contraseña que parece.

 

FIXED!

It was the password.

PHP doesn't like $ in the password it would seem.

 
 
1
 
vote

El problema es que en PHP se declaran las variables con el símbolo $. Y PHP interpreta el contenido de las cadenas declaradas con comillas dobles "". Si tienes:

  r2  

y usted hace:

  r3  

obtendrá var . Sin embargo, si utiliza la única cotización ", PHP no interpretará el contenido:

  r4  

devolverá $ foo literalmente. Como una pequeña nota, agrego que en el momento de la ejecución, es más rápido usar la cotización única porque PHP no tiene que interpretarlo, pero en este caso no podrá usar variables dentro de la cadena. Un saludo.

 

The problem is that in PHP the variables are declared with the symbol $. And PHP interprets the content of the strings declared with double quotes "". If you have:

$foo = "var"; 

and you do:

echo "$foo"; 

You will get var. However if you use the single quote '', PHP will not interpret the content:

$foo = "var"; echo '$foo'; 

It will return $foo literally. As a small note I add that at the time of execution it is faster to use the single quote because PHP does not have to interpret it, but in this case you will not be able to use variables within the chain. A greeting.

 
 

Relacionados problema

0  Conexión a Outlook.com en C # usando AE.NET.mail  ( Connecting to outlook com in c sharp using ae net mail ) 
No puedo conectarme a ninguna cuenta de correo para recuperar correos electrónicos usando la Biblioteca AE Net Mail IMAP. Lo he usado hace un tiempo y es buen...

0  Python si un var no existe entonces  ( Python if a var doesnt exist then ) 
Estoy desarrollando un examinador IMAP. Ahora, el conteo de la bandeja de entrada se imprime un mensaje en el siguiente diseño: [' Número ']. Ahora que ese ...

1  ¿Servicio de monitoreo inactivo IMAP con devolución de llamada HTTP?  ( Imap idle monitoring service with http callback ) 
Tengo una pequeña aplicación web que encuestan un buzón de correo IMAP (a través del módulo IMAP de PHP) cada minuto a través de un cronjob. Me gustaría hacer...

3  Python IMAP: no se puede marcar el correo electrónico como se ve  ( Python imap cannot mark email as seen ) 
Estoy tratando de configurar un correo electrónico como leer usando la biblioteca Python IMAP. Al igual que en este ejemplo: Python, IMAP y Gmail. Marcar men...

2  ¿Posible incorporar "EMPH EAIL" en una aplicación web?  ( Possible to incorporate push email into a web app ) 
Estaba leyendo sobre esta nueva característica en Gmail llamada PUSH EARGE que parece estar diseñado con teléfonos inteligentes en mente. Pero me pregunto...

16  Recomendaciones para un componente .NET para acceder a una bandeja de entrada de correo electrónico [cerrada]  ( Recommendations for a net component to access an email inbox ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

0  Comando imap para obtener el tamaño del mensaje  ( Imap command to get size of message ) 
Estoy buscando la mejor manera de obtener los tamaños de los mensajes usando IMAP (estoy escribiendo un simple C # lib por mí mismo). Básicamente, un comando ...

1  Cómo buscar todos los mensajes no leíticos imap cmd / go  ( How to search all unread messages imap cmd go ) 
Estoy desarrollando un cliente de correo electrónico y por algunas razones por las cuales el servidor IMAP no me envía a todos los mensajes no leídos. Fuera d...

0  Avanzando cuentas de intercambio mientras envía correo a través del servidor SMTP en ASP.NET  ( Bypassing exchange accounts while sending mail through smtp server in asp net ) 
Desarrollo aplicaciones utilizando el marco ASP.NET para mi organización académica. También tenemos un servidor de intercambio para cuentas internas. Dado que...

0  Cómo evitar enviar múltiples copias de correo  ( How to avoid sending multiple copy of mail ) 
Estoy escribiendo un programa de envío de un correo. Que lee el correo de la cola y después de enviarlo de la cola. SO PROCESO LOOK LIK LIKS: Leer un cor...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos