2014-11-27 15 views
6

Tôi đang phát triển một trang web.'mailto: `làm gì khi không có ứng dụng email?

Mở mailto: nếu không có ứng dụng email khách (như Outlook, Thunderbird, v.v ...)? Nó hoạt động trên máy tính của tôi, có Outlook, nhưng điều gì sẽ xảy ra nếu bạn muốn mailto: mở trong, ví dụ: gmail.com?

Tôi cần phải đưa gì vào câu hỏi mailto: để điều đó xảy ra?

+0

Theo như tôi biết mailto chỉ mở ra những khách hàng trên hệ điều hành khách. Nếu không có, nó không hoạt động. Có một số plugin (chrome) để biến Gmail thành "ứng dụng thư mặc định" của bạn. Tôi sửa lỗi này bằng cách tạo một (php) từ trang web của tôi và gửi nó theo cách đó. – Triplus

+0

Tôi không nghĩ rằng nó sẽ làm việc. Tôi đề nghị có một hình thức thay vì với Ajax. – www139

Trả lời

9

Là nhà phát triển web, bạn không có quyền kiểm soát phần mềm mà người dùng chọn để mở email của họ, vì nó được xử lý bởi cài đặt trình duyệt web của người dùng đó hoặc hệ điều hành. Nếu người dùng không có chương trình email nào được cài đặt trên máy của họ và không có hoạt động nào được xác định cho liên kết "mailto" trong trình duyệt của họ thì sẽ không có gì xảy ra.

0

Điều gì xảy ra hoàn toàn tùy thuộc vào khách hàng. Hệ điều hành xác định các trình xử lý giao thức cho các giao thức như mailto: hoặc tel:, v.v.

Bạn cần truy cập vào sổ đăng ký của khách hàng (trong trường hợp hệ thống Windows) để xử lý ứng dụng xử lý cho trình xử lý giao thức của bạn.

Đối với Outlook 2013 như xử lý được chỉ định, cấu trúc Registry theo trông như thế này:

[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\"" 

với một cấu trúc tương ứng dưới HKCU.

1

Tôi tin rằng bạn có thể sử dụng tính năng này. https://mail.google.com/mail/?view=cm&fs=1&[email protected] Tuy nhiên, điều này có những sai sót trong đó người dùng phải đã đăng nhập vào gmail. Hi vọng điêu nay co ich!

+1

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. – AdamMc331

+0

Sẽ ghi nhớ điều đó. Cảm ơn bạn. –

+0

Giả sử rằng người dùng đã đăng nhập vào (hoặc thậm chí sử dụng một) tài khoản gmail, tôi sẽ nói, thậm chí tệ hơn là giả sử họ có ứng dụng thư khách của riêng họ được thiết lập. – Matt

0

Giao thức URI không quyết định điều gì xảy ra-- nó chỉ hướng dẫn trình duyệt bạn đang sử dụng để thực hiện bất kỳ việc gì được định cấu hình để gửi e-mail (xem the IETF proposed standard for more info). Do đó, bạn sẽ phải tự tham khảo chính trình duyệt để xem nó có tác dụng gì nếu không có máy khách e-mail nào được cấu hình. Theo tài liệu và kinh nghiệm cá nhân của tôi, tôi không thấy bất kỳ cách nào để đặt thủ công một hành động: Có thể có một số trình duyệt nhất định với một số cú pháp không chuẩn, nhưng điều này không chắc vì điều này sẽ mở ra một vấn đề bảo mật tiềm năng rất lớn bằng cách có thể thực hiện một lệnh tùy ý bằng cách nhấp chuột (chẳng hạn như tải xuống vi-rút hoặc một cái gì đó tương tự).

1

Các giải pháp sau đây làm việc cho tôi:

(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); 

Để biết thêm thông xem: https://www.uncinc.nl/articles/dealing-with-mailto-links-if-no-mail-client-is-available

Các vấn đề liên quan