Mailing
Juser - 27/04/2006 13:52 (laatste wijziging 27/04/2006 13:59)
MySQL interesse
Ik wil een mailinglist maken, hiervoor heb ik een script.. maar ik begreep uit andere topics dat ik dan ook nog een wijziging moet aanmaken in php.ini . Hier zou dan de smtp-server gewijzigd moeten worden als ik het goed heb.
Nu is het probleem dat ik zelf niet aan php.ini kan, en het bedrijf waar ik het domein host wil/kan het niet aanpassen, en 'adviseren' mij om localhost te gebruiken als smtp-server. Kan het dan ooit werken???
(Of kan ik er iets op maken in een php-script of zoiets?)
14 antwoorden
Gesponsorde links
marten - 27/04/2006 13:54
Beheerder
als je mailinglist niet al te lang word kan je via de functie mail() versturen
Juser - 27/04/2006 13:57 (laatste wijziging 27/04/2006 13:57)
MySQL interesse
Ik heb er dit script voor:
<?
session_start();
IF (session_is_registered("sess_loginnaam") && session_is_registered("sess_id"))
{
INCLUDE("connect.php");
$sql = mysql_query("SELECT * FROM nieuwsbriefontvangers")or die(mysql_error());
while($assoc = mysql_fetch_assoc($sql))
{
$sql2 = mysql_query("SELECT * FROM nieuwsbrief ORDER BY id DESC LIMIT 1")or die(mysql_error());
$assoc2 = mysql_fetch_assoc($sql2);
mail($assoc['email'], $assoc2['titel'], $assoc2['bericht']);
}
ECHO"<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=?pagina=nieuwsbrief/main_nieuwsbrief.php\">";
}
ELSE
{
ECHO"
<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=../index.php\">
";
}
?>
<?
{
INCLUDE ( "connect.php" ) ;
{
mail ( $assoc [ 'email' ] , $assoc2 [ 'titel' ] , $assoc2 [ 'bericht' ] ) ; }
ECHO "<META HTTP-EQUIV=\" refresh\" CONTENT=\" 0; URL=?pagina=nieuwsbrief/main_nieuwsbrief.php\" >" ; }
ELSE
{
<META HTTP-EQUIV=\" refresh\" CONTENT=\" 0; URL=../index.php\" >
" ;
}
?>
Maar er wordt niks verstuurd. Krijg ook geen foutmelding of niks, wat doe ik fout dan?
marten - 27/04/2006 14:01 (laatste wijziging 27/04/2006 14:03)
Beheerder
Citaat:
Note: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use isset() to check a variable is registered in $_SESSION.
verder zijn er wel enkele topics over dat de mail niet verstuurd word. Kijk eens of je daar wat in kan vinden . Meestal met je headers te maken.
Ik zit te kijken want je kan aan mail() ook meegeven welke smtp server je wilt gebruiken als ik het zo lees.....
Citaat:
Note: If messages are not received, try using a LF (n) only. Some poor quality Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with RFC 2822.
Juser - 27/04/2006 14:39
MySQL interesse
Ik heb idd nu ook wat gevonden hiervoor:
<?
$to = "info@domein.nl";
$nameto = "Info";
$from = "postmaster@domein.nl";
$namefrom = "Postmaster";
$subject = "Test";
$message = "Test mail."
mail($from, $namefrom, $to, $nameto, $subject, $message);
function mail($from, $namefrom, $to, $nameto, $subject, $message)
{
$smtpServer = "smtp.wanadoo.nl";
$port = "25";
$timeout = "30";
$username = "gebruikersnaam";
$password = "paswoord";
$localhost = "localhost";
$newLine = "\r\n";
$smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout);
$smtpResponse = fgets($smtpConnect, 515);
if(empty($smtpConnect))
{
$output = "Failed to connect: $smtpResponse";
return $output;
}
else
{
$logArray['connection'] = "Connected: $smtpResponse";
}
fputs($smtpConnect,"AUTH LOGIN" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authrequest'] = "$smtpResponse";
fputs($smtpConnect, base64_encode($username) . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authusername'] = "$smtpResponse";
fputs($smtpConnect, base64_encode($password) . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authpassword'] = "$smtpResponse";
fputs($smtpConnect, "HELO $localhost" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['heloresponse'] = "$smtpResponse";
fputs($smtpConnect, "MAIL FROM: $from" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailfromresponse'] = "$smtpResponse";
fputs($smtpConnect, "RCPT TO: $to" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailtoresponse'] = "$smtpResponse";
fputs($smtpConnect, "DATA" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data1response'] = "$smtpResponse";
$headers = "MIME-Version: 1.0" . $newLine;
$headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine;
$headers .= "To: $nameto <$to>" . $newLine;
$headers .= "From: $namefrom <$from>" . $newLine;
fputs($smtpConnect, "To: $to\nFrom: $from\nSubject: $subject\n$headers\n\n$message\n.\n");
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data2response'] = "$smtpResponse";
fputs($smtpConnect,"QUIT" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['quitresponse'] = "$smtpResponse";
}
?>
<?
$to = "info@domein.nl" ;
$nameto = "Info" ;
$from = "postmaster@domein.nl" ;
$namefrom = "Postmaster" ;
$subject = "Test" ;
$message = "Test mail."
mail ( $from , $namefrom , $to , $nameto , $subject , $message ) ;
function mail ( $from , $namefrom , $to , $nameto , $subject , $message ) {
$smtpServer = "smtp.wanadoo.nl" ;
$port = "25" ;
$timeout = "30" ;
$username = "gebruikersnaam" ;
$password = "paswoord" ;
$localhost = "localhost" ;
$newLine = "\r \n " ;
$smtpConnect = fsockopen ( $smtpServer , $port , $errno , $errstr , $timeout ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; {
$output = "Failed to connect: $smtpResponse " ;
return $output ;
}
else
{
$logArray [ 'connection' ] = "Connected: $smtpResponse " ;
}
fputs ( $smtpConnect , "AUTH LOGIN" . $newLine ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'authrequest' ] = "$smtpResponse " ;
$smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'authusername' ] = "$smtpResponse " ;
$smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'authpassword' ] = "$smtpResponse " ;
fputs ( $smtpConnect , "HELO $localhost " . $newLine ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'heloresponse' ] = "$smtpResponse " ;
fputs ( $smtpConnect , "MAIL FROM: $from " . $newLine ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'mailfromresponse' ] = "$smtpResponse " ;
fputs ( $smtpConnect , "RCPT TO: $to " . $newLine ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'mailtoresponse' ] = "$smtpResponse " ;
fputs ( $smtpConnect , "DATA" . $newLine ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'data1response' ] = "$smtpResponse " ;
$headers = "MIME-Version: 1.0" . $newLine ;
$headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine ;
$headers .= "To: $nameto <$to >" . $newLine ;
$headers .= "From: $namefrom <$from >" . $newLine ;
fputs ( $smtpConnect , "To: $to \n From: $from \n Subject: $subject \n $headers \n \n $message \n .\n " ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'data2response' ] = "$smtpResponse " ;
fputs ( $smtpConnect , "QUIT" . $newLine ) ; $smtpResponse = fgets ( $smtpConnect , 515 ) ; $logArray [ 'quitresponse' ] = "$smtpResponse " ;
}
?>
Maar krijg hierbij dan weer deze melding:
Parse error: parse error, unexpected T_STRING in /usr/home/web/snl90663/mailing/mailingtest.php on line 9
Maar ik kan er geen fout in vinden.. wie wel?
Juser - 27/04/2006 14:53
MySQL interesse
Ok, als ik die aanpas naar bijvoorbeeld:
authenticationemail($from, $namefrom, $to, $nameto, $subject, $message);
function authenticationemail($from, $namefrom, $to, $nameto, $subject, $message)
authenticationemail( $from , $namefrom , $to , $nameto , $subject , $message ) ;
function authenticationemail( $from , $namefrom , $to , $nameto , $subject , $message )
Dan behoudt ik dezelfde fout (& melding).
kokx - 27/04/2006 15:01
Onbekend
$subject = "Test";
$message = "Test mail."
mail($from, $namefrom, $to, $nameto, $subject, $message);
$subject = "Test" ;
$message = "Test mail."
mail ( $from , $namefrom , $to , $nameto , $subject , $message ) ;
==>
$subject = "Test";
$message = "Test mail.";
mail($from, $namefrom, $to, $nameto, $subject, $message);
$subject = "Test" ;
$message = "Test mail." ;
mail ( $from , $namefrom , $to , $nameto , $subject , $message ) ;
Je was een ; vergeten.
kokx - 27/04/2006 15:05
Onbekend
@siliecom14: Dat maakt sinds php 4 niet meer uit. Dat moest wel in php3 en eerder.
Thomas - 27/04/2006 15:16 (laatste wijziging 27/04/2006 15:17)
Moderator
Euh, als je ergens (extern) hosting hebt, dan zouden het hosting-bedrijf ervoor moeten zorgen dat alles goed geconfigureerd is. Als je mail mag versturen, zou dit gewoon moeten werken.
Probeer eens gewoon een mailtje te versturen met mail(), zonder iets in te stellen, zou ik zeggen.
Juser - 27/04/2006 15:22 (laatste wijziging 27/04/2006 15:32)
MySQL interesse
Ok, heb ik gedaan. Script gebruikt van hier: http://www.site...&id=44
maar wordt niks verstuurd, wederom geen (fout)meldingen.
Edit:
Mail werkt nu wel, ideaal, bedankt voor de geboden hulp.
Citaat:
geduld is een schone zaak^^
kokx - 27/04/2006 15:26
Onbekend
Naar welk e-mail adres en van welk e-mail adres. Het kan zijn dat je provider een black-list gebruikt (spamcop bijv.) dan kan je naar sommigge adressen geen mail versturen en van ontvangen.
Juser - 27/04/2006 15:38
MySQL interesse
Dit topic mag wat mij betreft gesloten worden
Gesponsorde links
Dit onderwerp is gesloten .