簡體   English   中英

使用PHP編寫但不發送電子郵件

[英]Composing but not sending an email using PHP

我正在編寫一個php應用程序,它(除其他功能外)會創建一些用於發送電子郵件的報告。 我想讓我的客戶單擊“創建電子郵件”按鈕,這將導致打開許多裝有數據的電子郵件客戶端窗口,以便我的客戶可以在發送電子郵件之前檢查內容。

我可以生成帶有許多mailto標記的html頁面,然后客戶在發送之前單擊以打開電子郵件(用於檢查),但這顯然是勞動密集型的,也是我編寫此php應用程序的部分原因。 解決方案是否在生成的html頁面上具有一些javascript,從而觸發頁面加載時的所有mailto鏈接? 或者,還有更好的方法?

其他編輯:關鍵是客戶需要在發送電子郵件之前手動檢查內容-抱歉,我不清楚。 此后,客戶已指定他希望這些電子郵件在其電子郵件客戶端中顯示為草稿的預先編寫的電子郵件,而不是顯示在網頁上。

謝謝

在服務器端發送郵件將更加通用和有效,而不是要求客戶端依賴自己的郵件客戶端(當有人單擊瀏覽器中的mailto鏈接時,瀏覽器會嘗試打開類似Outlook的郵件客戶端或可能未配置的Thunderbird)。 您可以在頁面上打印各種表單,包括主題,地址和消息輸入,通過郵寄(例如,用戶提交表單)將其提取,然后響應表單提交而直接從服務器發送電子郵件。 從此開始:

http://us3.php.net/manual/en/function.mail.php

並查看PHPMailer:

https://github.com/PHPMailer/PHPMailer

另外,如果您使用的是框架,他們可能會擁有自己的實用程序來發送郵件,這比上述兩種方法更可取。 我正在談論的一個非常簡單的示例可能看起來像這樣:

<form action='/' method='post'>
  To Address: <input type='text' name='to_addr' /> <br/>
  Subject: <input type='text' name='subject' /> <br/>
  Message: <textarea name='to_addr'></textarea> <br/><br/>
  <input type='submit' name='send' value='Send Message' />
</form>
<?php

if(!empty($_POST['send']))
  mail( $_POST['to_addr'] , $_POST['subject'] , $_POST['message'] , 'From: no-reply@somedomain.com');

您可以使用這段代碼。

    $subject = 'Your mail subject';
    $message = 'Your message.';
    $header  = "From: webmaster@yourwebsite.com"."\r\n";
    $header .= "Reply-To: webmaster@yourwebsite.com"."\r\n";
    $header .= "MIME-Version: 1.0"."\r\n";
    $header .= "Content-Type: text/plain; charset=utf-8"."\r\n";
    $header .= "Content-Transfer-Encoding: 8bit"."\r\n";
    $header .= "X-Mailer: PHP v".phpversion();
    mail($newemail, $subject, $message, $header);
    header('Location: '.$success_page);
    exit;

經過進一步調查后,我似乎無法使用mailto html標記,因為它不會接受a href中的html標記 (例如,無格式的表格),並且字符數受到限制

因此,目前的解決方案是返回使用上面建議的php郵件表單,並在客戶的郵件帳戶中使用抄送,以便他們可以根據要求將電子郵件副本存儲在其電子郵件帳戶中。 另外,我將使用tinymce,以便客戶可以在電子郵件正文中編輯預先編寫的html。

暫無
暫無

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

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