2008-08-11 27 views
13

Tôi muốn tạo trang web của người tạo thư bên ứng dụng khách. Tôi biết các vấn đề của việc sử dụng hành động mailto ở dạng html (không chuẩn, không có ứng dụng thư mặc định được đặt trên máy khách). Nhưng trang web không quan trọng lắm, và họ không quan tâm lắm.Tôi có thể sử dụng JavaScript để tạo email phụ của khách hàng không?

Các email được tạo ra bởi các hành động mailto có cú pháp:

subject: đối tượng không xác định
cơ thể:

param1 = value1
param2 = value2
.
.
.
paramn = valuen

Tôi có thể sử dụng JavaScript để định dạng thư như thế này không?

Subject: XXXXX

Body: Value1; Value2; VALUE3 ... valueN

Trả lời

15

Những gì chúng ta sử dụng trong một projet là một cửa sổ popup mở ra một mailto: liên kết, đó là cách duy nhất chúng tôi thấy để soạn thư trong mail client mặc định làm việc với tất cả các khách hàng mail (ít nhất là tất cả khách hàng của chúng tôi sử dụng).

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ; 
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks 
var subject = ""//between the speech marks goes the subject of the message 
var href = "mailto:" + addresses + "?" 
     + "subject=" + subject + "&" 
     + "body=" + body; 
var wndMail; 
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10"); 
if(wndMail) 
{ 
    wndMail.close();  
} 
+0

Dường như không hoạt động trong IE 8. wndMail là null, theo trình gỡ rối. –

+0

Rất tiếc khi nghe điều đó. Đó là từ một dự án cũ sử dụng IE6. Vui lòng chỉnh sửa để cải thiện :) –

+0

Không thể tìm thấy giải pháp cho đến nay. –

0

Có một lý do bạn không thể chỉ gửi dữ liệu đến một trang mà xử lý gửi thư? Rất dễ dàng để gửi email bằng hầu hết các ngôn ngữ, vì vậy trừ khi có lý do chính đáng để gửi email cho phía khách hàng, tôi sẽ đề xuất tuyến đường đó.

6

Bạn nhiều hơn hoặc ít hơn chỉ có hai lựa chọn thay thế khi gửi mail thông qua trình duyệt ..

  1. làm cho một trang mà có đầu vào của người dùng, và cho phép họ gửi thư qua máy chủ web của bạn. Bạn cần một số loại kịch bản phía máy chủ cho việc này.
  2. sử dụng liên kết mailto: để kích hoạt mở ứng dụng thư khách đã đăng ký của người dùng. Điều này có những cạm bẫy rõ ràng mà bạn đã đề cập và ít linh hoạt hơn. Nó cần ít công việc hơn.
4

Chỉ với javascript, không thể.
Javascript không có ý định làm những việc như vậy và bị làm tê liệt nghiêm trọng theo cách nó có thể tương tác với bất kỳ thứ gì khác ngoài trình duyệt web mà nó sống, (vì lý do chính đáng!).

Hãy nghĩ về điều đó: một người gửi spam viết một trang web với javascript phía máy khách sẽ tự động gửi tới hàng ngàn địa chỉ email ngẫu nhiên. Nếu mọi người nên đi đến trang web đó tất cả họ sẽ tham gia vào một lừa đảo gửi thư hàng loạt phân tán, với máy tính của riêng họ ... không có nhiễm trùng hoặc tương tác người dùng cần thiết!

+3

Nhưng mailto hành động không gửi qua đường bưu điện, nó chỉ gọi là ứng dụng email mặc định của khách hàng và tạo ra một thư mới , nhưng không gửi nó.Vì vậy, trang web Phần mềm độc hại như vậy không thể gửi spam mà không có cộng đồng người dùng. Tôi chỉ muốn javascript để định dạng nội dung của tin nhắn, không gửi nó, nhưng xem câu trả lời này là không thể. – Telcontar

1

Bạn có thể tạo một mailto-link và cháy nó sử dụng javascript:

var mail = "mailto:[email protected]?subject=New Mail&body=Mail text body"; 
    var mlink = document.createElement('a'); 
    mlink.setAttribute('href', mail); 
    mlink.click(); 
+0

Cảm ơn bạn, điều đó đã trả lời sự suy nghĩ của tôi về "không gian làm việc" siêu đơn giản! – Fortin

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