Tool: E-Mail Import - Update: jetzt mit Gruppenzuweisung
Verfasst: So 11. Feb 2007, 16:28
Hallo zusammen,
ein Kunde von mir will mit Contenido seine Newsletter verschicken. Da er ca. 5000 E-Mail Adressen in einem Excel-Sheet gespeichert hat und diese nicht manuell eingeben will, hab ich ein kleines CSV-Import Skript geschrieben.
Das Skript muss in contenido/tools mit dem Namen email_import.php gespeichert werden.
Jede zu importierende E-Mail Adresse muss in der textarea in einer neuen Zeile stehen und dieses Format aufweisen: Vorname; Nachname; E-Mail Adresse
Da ich keine Login-Funktion o. ä. eingebaut habe, soll das Skript nach dem Import wieder gelöscht werden.
Falls es jemand brauchen kann, hier der Code:
Bei mir hat der Import problemlos funktioniert.
Falls jemand Verbesserungsvorschläge hat, einfach raus damit
Viel Spaß damit und Grüße,
Tom
ein Kunde von mir will mit Contenido seine Newsletter verschicken. Da er ca. 5000 E-Mail Adressen in einem Excel-Sheet gespeichert hat und diese nicht manuell eingeben will, hab ich ein kleines CSV-Import Skript geschrieben.
Das Skript muss in contenido/tools mit dem Namen email_import.php gespeichert werden.
Jede zu importierende E-Mail Adresse muss in der textarea in einer neuen Zeile stehen und dieses Format aufweisen: Vorname; Nachname; E-Mail Adresse
Da ich keine Login-Funktion o. ä. eingebaut habe, soll das Skript nach dem Import wieder gelöscht werden.
Falls es jemand brauchen kann, hier der Code:
Code: Alles auswählen
<?php
require('../includes/config.php');
require('../includes/cfg_sql.inc.php');
mysql_select_db($contenido_database, mysql_connect($contenido_host, $contenido_user, $contenido_password));
$summary = '';
if(isset($_POST['import']) && !empty($_POST['rcps']))
{
$last_id_sql = 'SELECT idnewsrcp FROM ' . $cfg["tab"]["news_rcp"] . ' ORDER BY idnewsrcp DESC LIMIT 0,1';
$last_id = mysql_fetch_assoc(mysql_query($last_id_sql));
$new_id = $last_id['idnewsrcp'] + 1;
$newrcps = split("\n", $_POST['rcps']);
$k = 0;
foreach($newrcps as $rcp)
{
$r = explode(";", $rcp);
foreach($r as $j => $i)
{
$r[$j] = ($j == 2) ? strtolower(urlencode(trim($i))) : urlencode(trim($i));
}
$time = date("Y-m-d H:i:s", time());
$import_sql = "INSERT INTO " . $cfg["tab"]["news_rcp"] . " VALUES
(" . $new_id . ", " . $_POST['idclient'] . ", " . $_POST['idlang'] . ", '" . $r[2] . "', 1, '" . $time . "', NULL, '" . $r[0] . '+' . $r[1] . "',
'" . substr(md5(rand()),0,17) . uniqid("") . "', 0, '" . md5($_POST['author']) . "', '" . $time . "', '" . $time . "', '" . md5($_POST['author']) . "')";
if($import = mysql_query($import_sql))
{
$new_id++;
$k++;
}
}
$summary = $k . ' E-Mail Empfänger wurden hinzugefügt.';
}
?>
<!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=iso-8859-1" />
<title>E-Mail Import</title>
<style>
* { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; }
</style>
</head>
<body style="background-color:#ddd;">
<form method="post" action="email_import.php">
Format: Vorname; Nachname; E-Mail-Adresse<br />
<textarea style="width:800px; height:300px; border:1px solid #999;" name="rcps"></textarea><br />
<br />
Uploader:<br />
<input type="text" name="author" value="sysadmin" /><br />
ID-Client:<br />
<input type="text" name="idclient" value="1" /><br />
ID-Language:<br />
<input type="text" name="idlang" value="1" /><br /><br />
<input type="submit" name="import" value="Importieren" />
</form>
<br />
<?php echo $summary; ?>
</body>
</html>
Falls jemand Verbesserungsvorschläge hat, einfach raus damit

Viel Spaß damit und Grüße,
Tom