2014-11-27 15 views
6

Sto sviluppando un sito web.Cosa fa `mailto:` quando non ci sono client email?

In che cosa si apre mailto: se non ci sono client di posta elettronica (come Outlook, Thunderbird, ecc.)? Funziona sul mio computer, che ha Outlook, ma cosa succede se si desidera aprire mailto:, ad esempio, gmail.com?

Cosa devo inserire nella dichiarazione mailto: affinché ciò accada?

+0

Per quanto ne so mailto apre solo quei clienti sul sistema operativo guest. Se non ce n'è, non funziona. Esistono alcuni plugin (chrome) per rendere Gmail il tuo "client di posta predefinito". Ho risolto questo problema creando un (php) dal mio sito e inviandolo in quel modo. – Triplus

+0

Non penso che funzionerebbe. Suggerisco di avere un modulo invece con Ajax. – www139

risposta

9

Come sviluppatore web non si ha alcun controllo sul software che un utente sceglie di aprire la propria posta elettronica, poiché viene gestito dalle impostazioni del browser Web dell'utente o dal sistema operativo. Se un utente non ha un programma di posta elettronica installato sul proprio computer e nessuna operazione definita per i collegamenti "mailto" nel proprio browser, non succederebbe nulla.

0

Ciò che succede dipende interamente dal cliente. Il sistema operativo definisce gestori di protocollo per protocolli come mailto: o tel:, ecc.

È necessario accedere al registro del client (nel caso di un sistema Windows) per manipolare l'applicazione di gestione per il gestore di protocollo.

Per Outlook 2013 come conduttore designato, la struttura Registro secondo aspetto:

[HKEY_CLASSES_ROOT\mailto] 
@="URL:mailto" 
"EditFlags"=hex:02,00,00,00 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\mailto\DefaultIcon] 
@="C:\\PROGRA~2\\MICROS~1\\Office15\\OUTLOOK.EXE,-9403" 

[HKEY_CLASSES_ROOT\mailto\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mailto\shell\open] 

[HKEY_CLASSES_ROOT\mailto\shell\open\command] 
@="\"C:\\PROGRA~2\\MICROS~1\\Office15\\OUTLOOK.EXE\" -c IPM.Note /mailto \"%1\"" 

con una corrispondente struttura sotto HKCU.

1

Credo che tu possa usare questo. https://mail.google.com/mail/?view=cm&fs=1&[email protected] Questo tuttavia ha i suoi difetti in cui l'utente deve essere già registrato in gmail. Spero che questo ti aiuti!

+1

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – AdamMc331

+0

Lo terrò a mente. Grazie. –

+0

Supponendo che l'utente abbia effettuato l'accesso a (o usi anche un) account gmail è, direi, ancora peggio che ipotizzando di avere il proprio client di posta impostato. – Matt

0

Lo schema URI mailto non decide cosa succede, semplicemente indica al browser che si sta utilizzando di eseguire qualsiasi cosa sia stata configurata per l'invio di e-mail (vedere the IETF proposed standard for more info). Pertanto, dovrai consultare il browser stesso per vedere cosa fa se nessun client di posta elettronica è configurato.

In base alla documentazione e alla mia esperienza personale, non vedo alcun modo di impostare manualmente un'azione: Potrebbe essere possibile con alcuni browser con una sintassi non standard, ma questo è improbabile poiché questo si aprirà un enorme potenziale problema di sicurezza essendo in grado di eseguire un comando arbitrario tramite clic (come il download di un virus o qualcosa del genere).

1

la seguente soluzione funziona per me:

(function($)) { 
    $('a[href^=mailto]').each(function() { 
    var href = $(this).attr('href'); 
    $(this).click(function() { 
     var t; 
     var self = $(this); 

     $(window).blur(function() { 
     // The browser apparently responded, so stop the timeout. 
     clearTimeout(t); 
     }); 

     t = setTimeout(function() { 
     // The browser did not respond after 500ms, so open an alternative URL. 
     document.location.href = '...'; 
     }, 500); 
    }); 
    }); 
})(jQuery); 

Per maggiori informazioni visita: https://www.uncinc.nl/articles/dealing-with-mailto-links-if-no-mail-client-is-available

Problemi correlati