Você pode configurar o postfix no ubuntu para enviar um e-mail automático quando um usuário envia o formulário da web do php?

0

Como você escreveria um script bash para obter informações de usuários do formulário web do php e enviar por e-mail o usuário salvo no servidor usando o postfix ao enviar o formulário? Os usuários salvos no servidor devem poder efetuar login e receber e-mails ao enviar o formulário da web.

Este é o meu script de formulário da Web.

<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Update MailList Database</title>
</head>
<body>
<h1>Update MailList Database</h1>
<form method="post" action="EnterContacts.php"> 
Name: <input type="text" name="name" /><br/>
Email: <input type="text" name="email"/><br/>
<input type="submit" name="Enter" value="Enter" />
</form>
<?php
if (isset($_POST['Enter']))
{
$db_hostname = 'localhost';
$db_database = 'mailList';
$db_username = 'root';
$db_password = 'password1';

$db_server = mysqli_connect ($db_hostname, $db_username, $db_password,$db_database);
if (!$db_server) die("Unable to connect to MYSQL or select database: ". mysql_error ());

$name=$_POST['name'];
$email=$_POST['email'];
$query = "INSERT INTO UserNamesMail (UName,email) VALUES ('$name','$email')";

$result = mysql_query($db_server,$query);
if (!result) die ("Database access failed: ". mysql_error());

$numRows = mysqli_num_rows($result);
echo $numRows;

// Database is disconnected when page script has completed.
mysqli_free_result($result);
mysqli_close($db_server);
} 
?>
</body>
</html> 
    
por Ru129 30.12.2015 / 18:43

1 resposta

0

Se você tem um formulário em PHP, por que não usar o PHP para enviar o email? Existe alguma razão para usar uma terceira linguagem para conseguir isso? Basta configurar o sendmail_path no php.ini e use a função mail () do PHP.

Resumo das instruções

Comece configurando o PHP para usar o sendmail, modificando sendmail_path no seu arquivo php.ini. Abra o /etc/php5/apache2/php.ini em um editor de texto. Atualize a linha que já contém sendmail_path. Se não existir tal linha, simplesmente adicione-a em uma nova linha. Deve ser algo como isto: sendmail_path = "/usr/sbin/sendmail -t -i"

Agora você pode usar um script PHP simples para enviar e-mails em vez de salvá-los em um banco de dados primeiro. Pode ainda haver boas razões para salvar o email em um banco de dados, como registro e rastreabilidade, mas não há nada que o impeça de combinar os dois métodos.

Substitua seu código PHP pelo seguinte (Observe que este é um código não testado, portanto, certifique-se de entendê-lo e testá-lo antes de colocá-lo em produção)

<?php
if (isset($_POST['Enter'])) {
    $to      = $_POST['name'] . ' <'$_POST['email'] . '>';
    $subject = 'Hello ' . $_POST['name'];
    $message = 'Welcome to the mailing list';
    $headers = 'From: [email protected]' . "\r\n" .
        'Reply-To: [email protected]' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);
}
?>

Os cabeçalhos adicionais podem ser omitidos, mas você provavelmente deve manter pelo menos o cabeçalho "De".

    
por Jakob Kobberholm 30.12.2015 / 19:32