2011-10-04 117 views
0

我想發送一個電子郵件使用JavaScript而不使用Outlook。我不想使用outlook發送電子郵件的mailto對象。發送電子郵件從HTML使用JavaScript沒有默認outlook

是否有JavaScript提供的任何直接方法將表單中提交的數據發送到電子郵件地址。

+3

「mailto」不使用Outlook,它使用哪個電子郵件程序是用戶的默認設置(哪個,可以_might_是Outlook)。 – nnnnnn

+0

您需要在後端處理髮送實際郵件的事情,這取決於站點位於以下位置:php,asp.net等 –

回答

5

有點。至少,您可以執行以下操作:

通過JavaScript,您可以撥打基於服務器的服務,該服務可以通過SMTP發送電子郵件。這個電話是通過簡單的表單提交給你自己的服務器還是通過XmlHttpRequest提交給遠程服務,只是a)你是否會自己實現它,以及b)你是否能夠在其他地方找到服務。

TL;博士:

  • 的JavaScript 本身無法調度電子郵件
  • 但是,可以使JavaScript的通話服務,它能夠 「講」 SMTP。
2

這樣的特徵將是一個安全風險,因爲它可能被垃圾郵件發送者容易被濫用。要直接發送電子郵件而不打開用戶的默認電子郵件客戶端實例,則必須將數據傳遞給將發送電子郵件的服務器。

0

我認爲你應該寫一個接受電子郵件地址和電子郵件內容的後端程序,然後發送電子郵件。然後,您可以在瀏覽器中使用Ajax將表單提交到後端。

0

我真的很希望沒有辦法用客戶端代碼來做到這一點,因爲我真的不希望使用我的電腦發送一些隨機的網頁發送電子郵件而不知道它。

說了這麼多,我確定答案是「否」。

的「電子郵件地址」的全部意義在於它打開用戶的默認電子郵件程序(不一定Outlook)中,讓他們知道他們發送一封電子郵件,並可以繼續之前編輯的所有字段(假設他們想繼續在所有)。

我能想到的最接近的是您的JavaScript將Ajax調用到您的web服務器,然後從您的服務器端代碼發送電子郵件。

0

打開的郵件程序取決於單個客戶機上默認設置的內容。

要發送電子郵件而不接觸諸如Outlook,Thunderbird等電子郵件程序,那麼您需要使用某種服務器端語言,如PHP,這樣做很容易,而且有很多的資源,這樣你就可以實現你想要的。

1

不! JavaScript無法通過電子郵件發送表單!但是,還可以選擇將表單數據發送到電子郵件地址。

JavaScript沒有提供直接的方法來將表單中提交的數據發送到電子郵件地址。

未提供「JavaScript電子郵件表單」功能的主要問題是安全性。 假設JavaScript中有一項功能可以發送電子郵件。某些惡意編碼器可以編寫腳本在您訪問其頁面時立即將電子郵件發送到某個地址。這會在您不知情的情況下向第三方透露您的電子郵件地址。他們將開始填寫包含大量垃圾郵件的郵箱!

+0

更糟糕的是,惡意編碼器可能會從您的電子郵件發送垃圾郵件地址... – nnnnnn

+0

@nnnnnn - 他們可以做到這一點,並做到這一點,所以任何垃圾郵件的擔憂有點遲。 –

4

這將是一些工作,但我認爲與Websockets你可以得到這個工作。

然後,您需要實現SMTP協議自己:

http://www.smtp2go.com/articles/smtp-protocol.html

這裏是WebSockets的教程:

http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

你可能想讀通過的WebSockets符合規範的更多詳情:

http://dev.w3.org/html5/websockets/#the-websocket-interface

所以,從理論上講,你應該能夠做到這一點,但根據規範SMTP一般是從WebSockets的阻止:

如果端口是該用戶代理被配置爲阻止 訪問的端口,然後拋出一個SecurityError異常。 (用戶代理通常像SMTP知名端口 塊訪問。)

但是,這通常阻止,不總是,或要求,因此它可能工作,是我能看到的唯一途徑JavaScript發送電子郵件。

相關問題