【问题标题】:Fire an automated email when database updated?更新数据库时触发自动电子邮件?
【发布时间】:2012-04-20 15:29:40
【问题描述】:

当我们使用“frames in”更新我们的数据库时,我正在尝试找出向客户发送自动电子邮件的最佳方式,我正在考虑 javascript 和 php,但我真的不知道如何实现为 nobo! ?

我的 HTML 表单显示需要触发电子邮件的复选框(由于长度原因仅部分显示)

<form action="<?php echo $editFormAction; ?>" name="form" method="POST"> 
<input name="frame_in" type="checkbox" id="long_tiny" value="yes" <?php if (!(strcmp($row_Recordset1['frame_in'],"yes"))) {echo "checked=\"checked\"";} ?> />
<input type="hidden" name="MM_update" value="form">
</form>

php 邮件脚本(不确定是否完全正确)

$mailTo = $row_customer['email'];
$subject = 'Your Frames Now in!!';
$cName = $row_Recordset2['cName'];
$jobRef = $row_Recordset2['customer_ref'];
$ourRef = $row_Recordset2['our_ref'];
$jobTotal = $row_recordset2['amount'];
mail($mailTo, $subject,
$cName your job Ref: $jobref is now in
<br>
<h2>Details:</h2>
<p>Our ref: $ourRef<br>
Customer Ref: $jobref<br>
Job total: $jobtotal</p>
); 

我真的不知道如何将它们联系在一起我猜需要进行错误处理,因为并非每个客户都有电子邮件(但不需要显示错误)

【问题讨论】:

  • 这个好像有点太笼统了,你有什么问题吗?正如我所见,不需要额外的 javascript,您可以处理来自 $editFormAction 的所有内容。

标签: php javascript email


【解决方案1】:
$mailTo = $row_customer['email'];
$subject = 'Your Frames Now in!!';
$cName = $row_Recordset2['cName'];
$jobRef = $row_Recordset2['customer_ref'];
$ourRef = $row_Recordset2['our_ref'];
$jobTotal = $row_recordset2['amount'];
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$message = "$cName your job Ref: $jobref is now in
<br>
<h2>Details:</h2>
<p>Our ref: $ourRef<br>
Customer Ref: $jobref<br>
Job total: $jobtotal</p>";
if($_POST['frame_in'] == "yes") {
mail($mailTo, $subject,$message, $headers); 
}

【讨论】:

  • 这看起来可以工作,但听起来不像一个 numty 是 php,我必须把它放在哪里?
  • 这是 PHP,它会去任何其他 PHP 处理表单的地方。当用户点击提交 $editFormAction 应该 = php 文件的名称时,这就是它的位置。
  • 我已经尝试过了,但似乎无法让它工作这与 $_POST 有什么关系吗?我收到未定义的索引错误,我也尝试将其更改为 $editFormAction 我不再得到任何明显的错误,但没有邮件被发送?希望有人能帮忙?
  • 您需要了解更多信息:w3schools.com/php/php_post.aspw3schools.com/php/php_mail.asp、PHP.NET。玩得开心
  • 工作现在谢谢(没有安装sendmail)如果frame_in="yes" 和collected="no" 有什么想法吗?
【解决方案2】:

这是一个非常广泛的问题。你需要做的是:

  1. 处理$editFormAction中的表格
  2. 如果设置了$_POST['frame_in'],请执行以下操作:
    • 获取所有客户
    • 向有电子邮件地址的人发送电子邮件
  3. 在您的网站上为未注册电子邮件地址的登录用户(或一般...)发布警告。

不需要额外的 javascript。

你到底卡在哪里了?

【讨论】:

  • 我已经制作了一个基本的 Intranet 系统 php/mysql,我们可以在其中跟踪我们的客户订单,并希望向客户发送一封自动电子邮件,告诉他们当我们的办公室工作人员在复选框中选择框架时有工作.如果没有电子邮件地址,则脚本不必做任何事情(没有内部错误或警告),但这只是我的能力范围
【解决方案3】:

您可以尝试使用发送电子邮件的数据库触发器。数据库本身将发送电子邮件,根本不涉及 php。这也将更具包容性,因为它会发送一封电子邮件,无论是谁/什么更改了该字段,包括来自 PhpMyAdmin 或其他网页/脚本的更改。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

http://forums.mysql.com/read.php?99,33635,33635#msg-33635

这可能会受到限制,具体取决于您的托管环境。如果您使用共享主机,出于安全原因,您可能无法使用触发器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 2022-07-09
    • 2020-09-12
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2013-11-01
    • 2015-05-09
    相关资源
    最近更新 更多