2011-04-13 99 views
4

我正在設計一個緊急響應頁面,我們需要的功能之一是能夠點擊一個按鈕(例如'發送詳細信息到使館'),然後自動發送 - 生成電子郵件到預期收件人($ email_address),而不必進入Microsoft Outlook並點擊發送。有沒有辦法做到這一點?點擊按鈕即可自動發送電子郵件

我知道的唯一方法是<a href='mailto:[email protected]'>之一,但這會打開Outlook中的電子郵件,我真的需要它完全自動化。

感謝所有幫助

+0

因爲您提到過PHP,所以使用PHP來實現它,您所描述的是一個mailto鏈接,Outlook可以在網頁上識別,而不是通過PHP代碼發送電子郵件/文本/通知。 – Jakub 2011-04-13 13:46:09

回答

7

像這樣的工作,作爲一個起點:

<form action="" method="post"> 
    <input type="submit" value="Send details to embassy" /> 
    <input type="hidden" name="button_pressed" value="1" /> 
</form> 

<?php 

if(isset($_POST['button_pressed'])) 
{ 
    $to  = '[email protected]'; 
    $subject = 'the subject'; 
    $message = 'hello'; 
    $headers = 'From: [email protected]' . "\r\n" . 
     'Reply-To: [email protected]' . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 

    echo 'Email Sent.'; 
} 

?> 

UPDATE

這可以作爲一個JavaScript函數來調用郵件。 PHP頁面,併發送電子郵件,而無需重新加載頁面。

function sendemail() 
{ 
    var url = '/mail.php'; 

    new Ajax.Request(url,{ 
      onComplete:function(transport) 
      { 
       var feedback = transport.responseText.evalJSON(); 
       if(feedback.result==0) 
        alert('There was a problem sending the email, please try again.'); 
      } 
     }); 

} 

你需要原型此方法:http://www.prototypejs.org/api/ajax/request

我沒有測試過這一點,但希望它應該是沿着正確的線路。

+0

,我會試試看:) – 2011-04-13 15:20:35

0

PHP支持發送電子郵件與mail function。您可以在PHP文檔中找到示例。 (參見鏈接)

實施例從PHP文檔:

<?php 
// The message 
$message = "Line 1\nLine 2\nLine 3"; 

// In case any of our lines are larger than 70 characters, we should use wordwrap() 
$message = wordwrap($message, 70); 

// Send 
mail('[email protected]', 'My Subject', $message); 
?> 
+0

感謝Rhapsody,這個效果很好。我現在的問題是,當我在mail.php文件中使用這個方法時,我提交表單然後頁面重定向。我需要我發送電子郵件的頁面完全不變,因爲它具有重要的秒錶,並且這些將在重定向時重置。 – 2011-04-13 13:55:05

+0

這可能值得查看對mail.php腳本進行Ajax調用,這會停止頁面加載,但運行腳本。 – gmadd 2011-04-13 13:57:14

+0

嗨gmadd,你能發表一個這樣的例子嗎?我還沒有機會深入研究AJAX,所以我不知道如何去使用它。謝謝 – 2011-04-13 13:59:02

0

一種解決方案將是使用mail()函數在PHP。有幾個類。我使用Phpmailer此;)

相關問題