Come posso inviare un'email in formato HTML con immagini usando PHP? Voglio avere una pagina con alcune impostazioni e un output HTML che viene inviato via e-mail a un indirizzo. Cosa dovrei fare? Il problema principale è quello di allegare files.how posso farlo?Invia HTML in e-mail tramite PHP?
risposta
E 'abbastanza semplice, lasciare le immagini sul server e inviare il PHP + CSS per loro ...
$to = '[email protected]';
$subject = 'Website Change Reqest';
$headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
$headers .= "CC: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$message = '<p><strong>This is strong text</strong> while this is not.</p>';
mail($to, $subject, $message, $headers);
È questa linea che dice al mailer e il destinatario che l'e-mail contiene (si spera) ben formato HTML che avrà bisogno di interpretare:
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
Ecco il link che ho avuto l'info .. (link...)
avrete bisogno di sicurezza anche se ...
che dire di CSS form, immagini e altri file come js di cui ha bisogno un file html? – Abadis
@UmerHayat ha accettato, ma dovevamo iniziare da qualche parte, anche se si tratta solo di imparare cose Google ... – Chris
@Abadis - I CSS possono essere eseguiti in entrambi i modi, incorporati nel file o esternamente come al solito con un file HTML . Le immagini possono essere imballate con credo (non l'ho mai fatto) o lasciate sul server e collegate a. Cerca immagini HTML se non sei sicuro del loro funzionamento: P – Chris
Il modo più semplice è probabilmente utilizzare solo Zend Framework o qualsiasi altro framework come CakePHP o Symphony.
Potete farlo anche con la funzione standard mail
, ma avrete bisogno di un po 'più di conoscenza su come allegare le immagini.
In alternativa, è sufficiente ospitare le immagini su un server anziché collegarle. L'invio di posta HTML è documentato nella documentazione della funzione mail
.
L'aggiunta di framework è overkill IMO :) – gonatee
@gonatee dipende dal livello di qualità che vuoi La risposta accettata non funzionerà per tutti tranne i casi più elementari. Se i casi di base sono tutto ciò che serve, allora usare 'mail()' andrà bene. Se avete bisogno di una soluzione più affidabile o di situazioni o richieste complesse, è probabilmente meglio affidarsi a un framework o una libreria che ha già attraversato dozzine di documenti RFC e anni di bug fixing. Se riesci a trovare una libreria dedicata o un framework che ti consenta di scegliere e scegliere le funzionalità che desideri, non ci sono molti motivi per affidarti a capire tutto da solo. – Martijn
È necessario codificare il codice html utilizzando il percorso assoluto per le immagini. Per percorso assoluto significa che devi caricare le immagini su un server e nell'attributo src
delle immagini devi dare il percorso diretto come questo <img src="http://yourdomain.com/images/example.jpg">
.
Di seguito si riporta il codice PHP per il vostro riferimento: - Il suo tratto da http://www.php.net/manual/en/function.mail.php
<?php
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
// subject
$subject = 'Birthday Reminders for August';
// message
$message = '
<p>Here are the birthdays upcoming in August!</p>
';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
// Additional headers
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>
ho un questo codice e verrà eseguito perfettamente per il mio sito
public function forgotpassword($pass,$name,$to)
{
$body ="<table width=100% border=0><tr><td>";
$body .= "<img width=200 src='";
$body .= $this->imageUrl();
$body .="'></img></td><td style=position:absolute;left:350;top:60;><h2><font color = #346699>PMS Pvt Ltd.</font><h2></td></tr>";
$body .='<tr><td colspan=2><br/><br/><br/><strong>Dear '.$name.',</strong></td></tr>';
$body .= '<tr><td colspan=2><br/><font size=3>As per Your request we send Your Password.</font><br/><br/>Password is : <b>'.$pass.'</b></td></tr>';
$body .= '<tr><td colspan=2><br/>If you have any questions, please feel free to contact us at:<br/><a href="mailto:[email protected]" target="_blank">[email protected]</a></td></tr>';
$body .= '<tr><td colspan=2><br/><br/>Best regards,<br>The PMS Team.</td></tr></table>';
$subject = "Forgot Password";
$this->sendmail($body,$to,$subject);
}
funzione di posta elettronica
function sendmail($body,$to,$subject)
{
//require_once 'init.php';
$from='[email protected]';
$headersfrom='';
$headersfrom .= 'MIME-Version: 1.0' . "\r\n";
$headersfrom .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headersfrom .= 'From: '.$from.' '. "\r\n";
mail($to,$subject,$body,$headersfrom);
}
immagine funzione di url è utilizzata per se si desidera modificare l'immagine che si ha chan ge in una sola funzione ho molte funzioni di posta come password dimenticata creare l'utente lì per sto usando la funzione di immagine url è possibile impostare direttamente il percorso.
function imageUrl()
{
return "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1)."images/capacity.jpg";
}
Grazie, questo era quello che mi serviva – Abadis
@Jalpesh Quindi per un file CSS si farebbe lo stesso? Fai riferimento al percorso assoluto e dovrebbe funzionare, giusto? –
@FernandoSilva devi impostare il percorso assoluto e anche impostare la classe o l'id sull'elemento in modo tale che il tuo css funzionerà – Jalpesh
Usa PHPMailer,
Per inviare la posta HTML è necessario impostare $ mail-> isHTML() solo, ed è possibile impostare il vostro corpo con i tag HTML
Ecco un tutorial ben scritto :
rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/
il trucco è quello di conoscere l'id contenuto della parte Immagine mimo quando si costruisce la parte del corpo HTML. Si riduce a fare il tag img
https://github.com/horde/horde/blob/master/kronolith/lib/Kronolith.php
Guardate la funzione buildMimeMessage per un esempio di lavoro.
È possibile inviare facilmente l'e-mail con contenuto HTML tramite PHP. Usa il seguente script.
<?php
$to = '[email protected]';
$subject = "Send HTML Email Using PHP";
$htmlContent = '
<html>
<body>
<h1>Send HTML Email Using PHP</h1>
<p>This is a HTMl email using PHP by CodexWorld</p>
</body>
</html>';
// Set content-type header for sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// Additional headers
$headers .= 'From: CodexWorld<[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";
// Send email
if(mail($to,$subject,$htmlContent,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
?>
codice sorgente e demo live possono essere trovati da qui - Send Beautiful HTML Email using PHP
inviando una e-mail HTML, non è molto diverso da l'invio di email normali utilizzando PHP. Ciò che è necessario aggiungere è il tipo di contenuto lungo il parametro dell'intestazione della funzione php mail(). Ecco un esempio.
<?php
$to = "[email protected]";
$subject = "HTML email";
$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>A table as email</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>Fname</td>
<td>Sname</td>
</tr>
</table>
</body>
</html>
";
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\b";
$headers .= 'From: name' . "\r\n";
mail($to,$subject,$message,$headers);
?>
È inoltre possibile controllare here per spiegazioni più dettagliate di w3schools
- 1. Invia email HTML incluso foglio di stile CSS tramite PHP
- 2. php invia email html con allegato .csv
- 3. Invia email tramite Google Apps in C#
- 4. Rails: Invia email tramite Gmail in produzione
- 5. Invio di email HTML tramite PHP: incluso il file HTML
- 6. Invia email con modello (Mandrill PHP)
- 7. Invia email HTML in Appengine [PYTHON] utilizzando il file HTML
- 8. Invia email HTML via C# con SmtpClient
- 9. Invia pagina HTML Come email utilizzando "mutt"
- 10. jQuery invia dati HTML tramite POST
- 11. Invia email tramite smtp in superlance usando crashmail
- 12. Invia email in modo sicuro
- 13. Batch Invia email con SwiftMailer
- 14. Invia email asincrona con phpmailer
- 15. invia email asp.net C#
- 16. iphone app invia email
- 17. Invia email automatica programmaticamente
- 18. intestazioni personalizzate tramite il modulo html invia
- 19. Codeigniter PHP JSON invia risposta HTML
- 20. Invia email programmaticamente su Android
- 21. Punto esclamativo a caso in PHP HTML-Email
- 22. Invia messaggio HTML utilizzando gmailr
- 23. Punto esclamativo in HTML Email
- 24. invia SMS tramite SMPP
- 25. Invio di email tramite email.mime.multipart in Python
- 26. Invia posta con PHP (phpmailer) tramite Office365 in Hostgator
- 27. HostGator non invia posta tramite API SwiftMail PHP
- 28. Impossibile inviare email tramite openshift
- 29. PHPmailer invia HTML CODICE
- 30. invia la posta html utilizzando codeigniter
è il tuo problema inviando 'codice html'? Oppure inviando email usando PHP in generale? – Adi