Problemer med generering av automail.php

Kategori overført fra Linux1

Problemer med generering av automail.php

Innleggav Joachim Schrader » tir 26.06.2007 13:47

Jeg har en et mailskript i php som genererer en html-tekst i en textarea-boks. Dvs. meldningen fra boksen utgjør variabelen $melding.

Teksten som genereres er ganske lang (nyhetsbrev), og jeg har ingen problemer med å sende mailen. All tekst kommer med, og jeg har ingen problemer.

Så prøver jeg å lage et automatisk mail-script som kan kjøres med crontab. Problemet er bare at hvis selve meldingen (i html) blir for llang så kuttes den etter et visst antall tegn....

Jeg kan jo ikke bruke textarea ettersom det ikke er et skjema som skal sendes, så jeg definerer istedet ulike variabler:
Kode: Merk alt
$meld1 = "<table width=600 cellpadding=0 cellspacing=10 border=0 style=border-style:solid;border-width:1px;border-color:#000000;padding:0px;margin:0px;font-family:arial;text-align:left;font-size:14px;>";
$meld2 = "<tr valign=top><td width=580>Her kommer masse tekst...</td></tr>";
$meld3 = "</table>";
$melding = "$meld1$meld2$meld3";

Deretter sendes alt med:
Kode: Merk alt
$headers = "From: meg@domene.no \r\n";
$headers.= "Content-Type: text/html; ";
$headers .= "MIME-Version: 1.0 ";
mail("meg@domene.no", "Nyhetsbrev", $melding, $headers);

Jeg får ingen php-feilmeldinger, og mailen blir sendt. Problemet er at bare begynnelsen av teksten vises.

Det virker som om det er en maks-antall-tegn begrensning.....

Hvordan kan jeg få dette til?

Altså - samme mail sendt via form går greit. Det hjelper heller ikke om jeg slår sammen alle html-kodene til en linje:
Kode: Merk alt
$melding = "<table width=600 cellpadding=0 cellspacing=10 border=0 style=border-style:solid;border-width:1px;border-color:#000000;padding:0px;margin:0px;font-family:arial;text-align:left;font-size:14px;><tr valign=top><td width=580>Her kommer masse tekst...</td></tr></table>";

Samme problem...

Hva gjør jeg galt?

EDIT: Kort fortalt er spørsmålet mitt: Hvordan kan jeg få generert $melding av det som står i textareaboksen uten å måtte klikke på en submit-knapp?

Jeg har postet det samme problemet på linuxquestions som jeg gjengir her hvis det kan belyse spørsmålet mitt bedre:

I'm having a form that generates a html-message inside a textarea, and when I click submit the script emails the message to my subscribers. This works fine, and I'm having no errors.

Now - I would like to make this a automail I can run with cron.

The problem is that now there is no submit-button, and I don't know how I can get the generated html-code from the textarea to a message without the form and submit-button?

This is my mail-script:
Kode: Merk alt
<?

if ($submit) {

$headers = "From: me@domain.com \r\n";
$headers.= "Content-Type: text/html; ";
$headers .= "MIME-Version: 1.0 ";
mail("me@domain.com", "Newsletter", $body, $headers);

} else { ?>

<form method="post" action="<? echo $_PHP['SELF']; ?>">

<textarea cols="80" rows="20" name="body">A very long text containing html-code generated from my mysql-db</textarea>

<input type="submit" name="submit" value="Submit">

</form>

<? } ?>

This works fine, and my question is: How can I do this so that the script does it automatically without me having to click the submit button?

I have tried with:
Kode: Merk alt
$body = "A very long text containing html-code generated from my mysql-db";
$headers = "From: me@domain.com \r\n";
$headers.= "Content-Type: text/html; ";
$headers .= "MIME-Version: 1.0 ";
mail("me@domain.com", "Newsletter", $body, $headers);

But when the text is getting to long it's cut off, and the recived mail is incomplete...

Can I specify how long the body-variable can be, or is there another way to do this?

Brukerens avatar
medlem i 227 måneder
 

Innleggav kattemann » ons 08.08.2007 12:38

http://dk.php.net/function.mail

Du må bryte linjer etter 70 tegn, ser det ut til.

$message = wordwrap($message, 70);

Brukerens avatar
medlem i 235 måneder
 


Returner til Utvikling i Linux



Hvem er i Forumene

Registrerte brukere: Google [Bot]