簡體   English   中英

我可以使用HTML5發送客戶端電子郵件嗎?

[英]Can I use HTML5 to send a client-side email?

我想用HTML5發送電子郵件。 我不想強迫用戶打開郵件客戶端,我想直接從網頁發送電子郵件。

附帶說明一下,JavaScript是否有任何方法可以做到這一點? 我知道這可能是不可能的,只是想知道是否有任何狡猾的方法將其完全通過客戶端。

簡而言之,不是直接來自客戶端(黑客除外)。

您可以對服務器進行ajax調用並發送電子郵件。

從客戶端執行此操作而不使用郵件客戶端的問題很復雜。 例如,大多數消費者ISP都有自己的SMTP中繼,必須通過25端口傳輸所有出站郵件。 您的網站將無法獲取正確的信息來執行此操作。 其次,Web瀏覽器不了解SMTP協議,XMLHttpRequest對象也不了解。

因此,如果您是黑客的忍者,也許可以使用ActiveX,Java Applets或Flash來解決問題,但是基本上,您必須直接使用tcp套接字進行操作,並在該套接字上發出SMTP協議命令。

有許多障礙需要克服,實際上我不知道該怎么做,但是哪里有辦法。 如果發現黑客入侵,主要的瀏覽器供應商可能會迅速將其插入,請不要感到驚訝。

對的,這是可能的。 但不實用**請參閱編輯2

一些HTML5實現包括對websocket的支持,本質上是與服務器的tcp連接。 覆蓋一些發送/接收代碼,您可以構建SMTP客戶端。

實際上,似乎已經使用了nodejs和websocket支持來實現smtp客戶端...請參見此處...

就像標准的smtp客戶端一樣,您仍然需要一個smtp服務器,用戶名,密碼等才能使其正常工作。

使用這種方法發送垃圾郵件的可能性很小,因為您的smtp提供程序可以輕松地取消您的帳戶。

===編輯===

實際上,您可以構建服務器版本少的服務器,它還必須實現名稱服務器查找以查找mx記錄。 但是,任何體面的SMTP服務器都有維護垃圾郵件黑名單表的可能性,並且從隨機IP地址進行連接會看到通常標記為垃圾郵件的電子郵件。

與需要安全郵件連接的smtp服務器進行通信也可能很困難。

正如其他人提到的那樣,此實現存在惡意用途,例如發送垃圾郵件。 我想您可能是HTML5僵屍網絡的創建者,但我本以為您已經了解了大部分:)

===編輯2 ===

正如Mark At Ramp51所提到的,websocket需要握手。 這是我不知道的。 您將不得不破解websocket實現以繞過握手。

正確的方法是讓Web服務器轉發電子郵件。

這是不可能的。

相反,您應該使用AJAX在服務器上發送電子郵件。

直接從Javascript發送電子郵件

來自官方資源:

它是如何工作的?

  1. 連接您的電子郵件服務從多種電子郵件服務中選擇。 我們支持事務電子郵件服務(Mailgun,Mailjet,Mandrill,SendGrid,Amazon SES和Postmark)和個人電子郵件服務(AOL,Gmail,FastMail,iCloud,Mail.ru,Outlook,Yahoo,Yandex和Zoho)。

  2. 創建電子郵件模板從我們的模板設計列表中選擇,或輕松構建自己的模板。 模板已參數化,因此您可以通過Javascript進一步自定義模板。

  3. 使用我們的Javascript API發送電子郵件添加我們的Javscript SDK,然后開始發送電子郵件!

這是典型呼叫的樣子:

var service_id = 'my_mandrill';
var template_id = 'feedback';
var template_params = {
  name: 'John',
  reply_email: 'john@doe.com',
  message: 'This is awesome!'
};

emailjs.send(service_id,template_id,template_params);

所有現有的API都需要使用一個私鑰,您顯然不想在您的前端代碼中共享它。 特定服務通過僅允許發送預定義的模板來克服了這一問題,因此對於“與朋友共享”功能,您將創建一個名為“共享”的模板。

您不能僅使用JavaScript發送電子郵件。 您需要某種形式的服務器端處理(PHP,ASP等)來發送實際的電子郵件。

這里有一個很好的教程來設置ajax表單: http : //net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

它不包括用於發送電子郵件的PHP(或ASP等),但是那里有許多教程介紹如何使用PHP發送電子郵件。

您不能僅通過客戶端代碼來做到這一點。

您可以通過服務器回調AJAX來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM