PHP Connessione a una casella di posta


Esempio

Per fare qualsiasi cosa con un account IMAP è necessario prima connettersi ad esso. Per fare questo è necessario specificare alcuni parametri obbligatori:

  • Il nome del server o l'indirizzo IP del server di posta
  • La porta a cui desideri connetterti
    • IMAP è 143 o 993 (sicuro)
    • POP è 110 o 995 (sicuro)
    • SMTP è 25 o 465 (sicuro)
    • NNTP è 119 o 563 (sicuro)
  • Flag di connessione (vedi sotto)
Bandiera Descrizione Opzioni Predefinito
/service=service Quale servizio usare imap, pop3, nntp, smtp imap
/user=user nome utente remoto per l'accesso sul server
/authuser=user utente di autenticazione remota; se specificato, questo è il nome utente di cui viene utilizzata la password (ad es. amministratore)
/anonymous accesso remoto come utente anonimo
/debug registrare la telemetria del protocollo nel registro di debug dell'applicazione Disabilitato
/secure non trasmettere una password in chiaro sulla rete
/norsh non utilizzare rsh o ssh per stabilire una sessione IMAP preautenticata
/ssl utilizzare Secure Socket Layer per crittografare la sessione
/validate-cert certificati dal server TLS / SSL abilitato
/novalidate-cert non convalidare i certificati dal server TLS / SSL, necessario se il server utilizza certificati autofirmati. USARE CON CAUTELA Disabilitato
/tls forzare l'uso di start-TLS per crittografare la sessione e rifiutare la connessione ai server che non la supportano
/notls non fare start-TLS per crittografare la sessione, anche con i server che la supportano
/readonly richiede la casella di posta di sola lettura aperta (solo IMAP, ignorata su NNTP e un errore con SMTP e POP3)

La tua stringa di connessione sarà simile a questa:

{imap.example.com:993/imap/tls/secure}

Si noti che se uno qualsiasi dei caratteri nella stringa di connessione non è ASCII, deve essere codificato con utf7_encode ($ stringa) .

Per connettersi alla casella di posta, utilizziamo il comando imap_open che restituisce un valore di risorsa che punta a uno stream:

<?php
$mailbox = imap_open("{imap.example.com:993/imap/tls/secure}", "username", "password");
if ($mailbox === false) {
    echo "Failed to connect to server";
}