我正在编写一个php应用程序,其中(除其他外)创建了一些电子邮件报告。我想让我的客户点击“创建电子邮件”按钮,这将导致许多电子邮件客户端窗口打开预先填充的数据,以便我的客户可以在发送电子邮件之前检查内容。
我可以生成一个带有多个mailto标签的html页面,然后客户在发送之前点击该页面打开电子邮件(用于检查),但这显然是劳动密集型的,这也是我写这篇文章的部分原因php应用程序。解决方案是在生成的html页面上有一些javascript,它会在页面加载时触发所有mailto链接吗?或者有更好的方法吗?
其他编辑: 关键是客户需要在发送电子邮件之前手动检查内容 - 抱歉,我还不清楚。客户已指定他希望电子邮件在其电子邮件客户端中显示为草稿预先编写的电子邮件,而不是出现在网页上。
由于
答案 0 :(得分:2)
在服务器端发送邮件会更加通用和有效,而不是要求客户端依赖自己的邮件客户端(当有人点击浏览器中的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');
答案 1 :(得分:0)
您可以使用这段代码。
$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;
答案 2 :(得分:0)
经过进一步调查后,似乎我无法使用mailto html标签,因为它will not accept html tags within the a href(例如没有格式化的表)和is restricted in the number of characters。
所以现在的解决方案是返回使用上面建议的php邮件表单,使用cc到客户邮件帐户,这样他们就可以按照他们的要求在他们的电子邮件帐户中存储电子邮件的副本。此外,我将使用tinymce,以便客户可以在电子邮件正文中编辑预先编写的html。