我有一个非常通用的表格。我希望用户输入他们的电子邮件地址,选择他们希望收到的任何文件,并希望收到一封电子邮件,通过他们所选文件的下载链接生成回复。我过去做过这个,但我的思绪一片空白。您可以提供的任何帮助表示赞赏!感谢。
以下是表格:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Form</title>
</head>
<body>
<form method="post" action="autoreply.php">
<label class="description" for="email">Your Email Address</label>
<input id="email" name="email" class="element text medium" type="text" maxlength="255" value=""/>
<br />
Document 1:
<input type="checkbox" name="document[]" value="document1" />
<br />
Document 2:
<input type="checkbox" name="document[]" value="document2" />
<br />
Document 3:
<input type="checkbox" name="document[]" value="document3" />
<br />
<br />
<input type="hidden" name="send" value="1" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
这是我的PHP:
<?php
if(isset($_POST) && ($_POST['send'] == 1)){
$documents = array(
'document1' => 'http://www.example.com/document1.doc',
'document2' => 'http://www.example.com/document2.doc',
'document3' => 'http://www.example.com/document3.doc'
);
$to = '$email';
$subject = 'the subject';
$message = "hello\n\n";
if(isset($_POST['document']) && count($_POST['document']) > 0){
foreach($_POST['document'] as $doc){
if(isset($documents[$doc])){
$message .= "Here is ".$documents[$doc]."\n";
}
}
}
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
?>
答案 0 :(得分:0)
您应该使用附件,要包含在文档中,或者如果文档是纯文本,请将其包含在邮件中。
如果要包含附件,最方便的是使用现成的邮件程序类,例如swift mailer。
如果您想在yout消息中包含文档,您应该使用以下内容:
if(isset($_POST['document']) && count($_POST['document']) > 0){
foreach($_POST['document'] as $doc){
if(isset($documents[$doc])){
$message .= "Here is ".$documents[$doc]."\n\n";
$message .= file_get_contents( filename_of($documents[$doc]) );
}
}
}
当然,您必须编写一个函数来从文档名称中获取文件名。