Avatar billede Asky Forsker
27. september 2012 - 22:44 Der er 8 kommentarer og
1 løsning

PHP schript til afsendelse af mail via mailserver

Fra supporten har jeg fået at vide, at et såkaldt åbent delay bliver lukket snarligt. Derfor skal jeg sende mails fra min formular via en mailserver, ved den emailadresse, der bruges skal man bruge både brugernavn og adgangskode.
Er der nogen, der har erfaring med et sådant PHPschript?
Avatar billede olsensweb.dk Ekspert
27. september 2012 - 23:07 #1
dette må være svaret på dit spm.
http://stackoverflow.com/questions/112190/php-ini-smtp-how-do-you-pass-username-password

jeg brugte selv http://phpmailer.worxware.com/ da jeg havde sammen problem, (skulle sende fra konto der ikke var på mit domain)
ellers er der http://pear.php.net/package/Mail

du kunne også prøve at sætte det i din ini med http://php.net/manual/en/function.ini-set.php runtime
sæt dette i toppen af dit mailscript
ini_set('SMTP', 'mail.yourserver.com');
ini_set('smtp_port', '25');
ini_set('auth_username', 'bruger på din server');
ini_set('auth_password', 'pw til bruger på din server');
Avatar billede Asky Forsker
28. september 2012 - 09:26 #2
- Og når det det indgår som en BCC i Oleboles UTF-8 mailscript?
Avatar billede Asky Forsker
28. september 2012 - 20:08 #3
Hvad siger man til denne (ikke testet)

function $bcc{
ini_set('SMTP', 'mail.yourserver.com');
ini_set('smtp_port', '587');
ini_set('auth_username', 'bruger på din server');
ini_set('auth_password', 'pw til bruger på din server');
return $bcc
}
og så function mail_utf8 bagefter?
Avatar billede olsensweb.dk Ekspert
28. september 2012 - 20:39 #4
jeg ville prøve dette (utested)
function mail_utf8($to, $emne='Intet emne', $besked='', $from='', $cc='', $bcc='', $type='html') {
ini_set('SMTP', 'mail.yourserver.com');
ini_set('smtp_port', '587');
ini_set('auth_username', 'bruger på din server');
ini_set('auth_password', 'pw til bruger på din server');

$from = escapeAddr($from);
......
}


og hvis det kun er hvis bcc er aktiv. (utested) (vil virke tåbeligt)
function mail_utf8($to, $emne='Intet emne', $besked='', $from='', $cc='', $bcc='', $type='html') {
...
if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
if ($bcc!=''){
ini_set('SMTP', 'mail.yourserver.com');
    ini_set('smtp_port', '587');
    ini_set('auth_username', 'bruger på din server');
    ini_set('auth_password', 'pw til bruger på din server');

    $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;   
}
$header .= PHP_EOL;
......
}


men man kan selvføgelig også pakke det ind i en function som du tænker på ,

så vil det nok se sådan ud: (utested)

function authenticate(){
ini_set('SMTP', 'mail.yourserver.com');
ini_set('smtp_port', '587');
ini_set('auth_username', 'bruger på din server');
ini_set('auth_password', 'pw til bruger på din server');

}

function mail_utf8($to, $emne='Intet emne', $besked='', $from='', $cc='', $bcc='', $type='html') {
authenticate();
$from = escapeAddr($from);
......
}
Avatar billede Asky Forsker
08. oktober 2012 - 12:21 #5
Efter en uges ferie er jeg nu igen på min pind. Jeg har testet alle eksemplerne på forskellig vis og desværre ikke fået noget gennembrud endnu. Måske er det en ide at afprøve den "almindelige" mailafsendelse?? Hvis tdcwebmore så bedre forstår INI-erne
Det skulle jo gerne ende med at virke.
Avatar billede Asky Forsker
08. oktober 2012 - 20:59 #6
Nu har jeg også prøvet denne:
<?php
require_once "Mail.php";

$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "ssl://mail.example.com";
$port = "465";
$username = "smtp_username";
$password = "smtp_password";

$headers = array ('From' => $from,
  'To' => $to,'cc: '=>$cc,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'port' => $port,
    'auth' => true,
    'username' => $username,
    'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
  } else {
  echo("<p>Message successfully sent!</p>");
  }
?>
Prøvet med port 25, 465, 487 Cc går igennem, men ikke andet. . .
Avatar billede Asky Forsker
09. oktober 2012 - 09:37 #7
Ved ny afprøvning får jeg fejl på denne "require_once "Mail.php";"
og Mail::factory - findes ikke på php-serveren
Avatar billede Asky Forsker
11. oktober 2012 - 09:47 #8
så fik jeg et gennembrud:
På sitet:
http://phpmailer.worxware.com/index.php?pg=examplebsmtp
kan man downloade de to class-filer og anbringe dem i roden på webhotellet.
class.phpmailer.php skal dog lige rettes lidt til med hensyn til tegnsæt utf-8
$body er beskeden i HTML
<?php
require_once('class.phpmailer.php');
include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail            = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host      = "qmail.tdcwebmore.dk"; // SMTP server
$mail->SMTPDebug  = 2;                    // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth  = true;                  // enable SMTP authentication
$mail->Host      = "qmail.tdcwebmore.dk"; // sets the SMTP server
$mail->Port      = 587;                    // set the SMTP port for the GMAIL server
$mail->Username  = "brugernavn"; // SMTP account username
$mail->Password  = "password";        // SMTP account password
$mail->From    = "info@domaene.dk";
$mail->FromName = "Firma";
$mail->AddReplyTo("info@domaene","Firma");
//$mail->AddCC($email, "kunde");
$address = "$email"; //kundens indtastede
$mail->AddAddress($address, "Kunde");
$mail->AddBCC("info@domaene.dk", "Firma");
$mail->Subject = ($_POST['subject']);

$mail->IsHTML(true);
$mail->MsgHTML($body);
$address = ($_POST['email']);
//$mail->AddAddress($address, "Kunde");
//$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;

} else {

    echo "<p> Formularen er blevet sendt med følgende oplysninger: <br/> Firma: ".$firma. " ".$navn." ".$adresse." ".$postnummer." ".$by."<br/> E-mail: ".$email."  Emne: ".$emne.". Du modtager snarest en e-mail med din bestilling.";
       
  }
CC og Bcc virker ikke, men så har vi jo Address til det samme.
Jeg vil gerne give pointene til ronols, da han er den enste, der har interesseret sig for mit problem. :-)
Avatar billede Asky Forsker
12. oktober 2012 - 09:06 #9
Jeg giver pointene til Ronols, da kommentarerne og forslagene har hjulpet mig et stykke på vej. Se mit indlæg nederst.
Hermed lukker jeg dette spørgsmål.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester