Sto provando a generare file EML da PHP. C'è qualche libreria che mi permetterà di crearli facilmente? Potrei trovare alcuni componenti ActiveX su Internet, ma preferirei usare qualcosa di più portatile.Libreria PHP per generare file di posta elettronica EML?
risposta
ho finito per costruire il messaggio MIME me utilizzando questo tipo di modello, in cui ogni campo viene sostituito da una variabile TEMPLATE_<name>
:
From: TEMPLATE_FROM_ADDRESS
MIME-Version: 1.0
To: TEMPLATE_TO_ADDRESS
Subject: TEMPLATE_SUBJECT
Content-Type: multipart/mixed; boundary="080107000800000609090108"
This is a message with multiple parts in MIME format.
--080107000800000609090108
Content-Type: text/plain
TEMPLATE_BODY
--080107000800000609090108
Content-Type: application/octet-stream;name="TEMPLATE_ATTACH_FILENAME"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;filename="TEMPLATE_ATTACH_FILENAME"
TEMPLATE_ATTACH_CONTENT
--080107000800000609090108
Poi creare il messaggio finale è abbastanza semplice utilizzando str_replace
:
$content = file_get_contents("Template.eml");
$content = str_replace("TEMPLATE_FROM_ADDRESS", $fromEmail, $content);
$content = str_replace("TEMPLATE_TO_ADDRESS", $toEmail, $content);
// etc. for each template parameter
// Also don't forget to base64_encode the attachment content;
$content = str_replace("TEMPLATE_ATTACH_CONTENT", base64_encode($attachContent), $content);
Ulteriori informazioni su file allegato in questo post: Attachment name and file extension not working in email *.eml
Penso che tu non abbia bisogno di una biblioteca. E 'solo di testo (ad esempio http://bitdaddys.com/example1.eml)
Date: Sat, 12 Aug 2006 14:25:25 -0400
From: John Doe <[email protected]>
Subject: BitDaddys Software
To: [email protected]
Dear BitDaddys Corp.,
We have added your software to our approved list.
Thank you for your efforts.
Sincerely,
John Doe
Some Server Company
È possibile il testo appena uscita con le intestazioni e salvarlo utilizzando fwrite. Per gli allegati utilizzano base64_encode()
come dichiarato here
La cosa importante è che dovrebbe seguire la semantica SMTP - cioè CRLF alla fine di ogni intestazione e una riga vuota (terminata da CRLF) tra le intestazioni e il corpo. Il corpo dovrebbe essere trasferito codificato come 7 bit ascii (o stampabile quotato). – symcbean
Utilizzare imap_savebody (parte della libreria imap http://us1.php.net/manual/en/function.imap-savebody.php) con null $ numero_part. Crea un bellissimo file .eml con una riga di codice con l'intero messaggio (null $ numero_partenza = tutte le parti ... non documentate ma funziona).
le altre due soluzioni dipendono dal formato dell'email (solo un allegato e nessuna sezione html nella prima soluzione e solo email di testo nella seconda).
imap_savebody crea un file .eml perfetto a prescindere dal formato del messaggio di posta elettronica in arrivo (purché si tratti di un reclamo RFC, ovviamente).
per 'numero di sezione' indica il parametro' $ numero_parte' – redexp
- 1. Libreria di posta elettronica migliore per applicazioni Web Java
- 2. Specificare il nome file .eml utilizzando System.Net.Mail.MailAddress o altra libreria
- 3. Caricamento di file .eml in javax.mail.Messages
- 4. Creazione di una coda di posta elettronica in PHP?
- 5. Html.Label per visualizzare l'indirizzo di posta elettronica
- 6. convalida indirizzo di posta elettronica non latino
- 7. convalida campo di posta elettronica
- 8. Reagire nativo - inviare foto per posta elettronica
- 9. creare una casella di posta elettronica con php, javascript ecc.
- 10. configurazione della posta elettronica gitlab
- 11. : Blocco log e posta elettronica
- 12. Impossibile rilevare automaticamente l'indirizzo di posta elettronica
- 13. Invio di un messaggio di posta elettronica con un allegato di file PDF tramite PHP
- 14. Tracciamento della posta elettronica con PHP e immagine
- 15. Problema di allegato alla posta elettronica file binario
- 16. Esiste un file modello di posta elettronica come * .oft, che può essere aperto in tutti i programmi di posta elettronica?
- 17. rilevamento della mancanza di posta elettronica
- 18. Impostazione account di posta elettronica EC2
- 19. Collegamento per aprire un nuovo messaggio di posta elettronica nel gestore di posta elettronica predefinito nell'applicazione WPF
- 20. Creare un file .eml (email) in Java
- 21. Python Esempio di modulo di posta elettronica Django
- 22. Aggiornamento degli indirizzi di posta elettronica in MySQL (espressione regolare?)
- 23. Accedere ai messaggi di posta elettronica usando imap
- 24. Invio di un messaggio di posta elettronica utilizzando Wordpress
- 25. invio di posta elettronica richiede molto tempo in localhost
- 26. Identifica se un indirizzo di posta elettronica è "pubblico"
- 27. Codifica corpo posta elettronica Python 3
- 28. Messaggi di posta elettronica a volte ottenere strapazzate
- 29. come scaricare allegati di posta elettronica in una cartella specifica utilizzando IMAP e php
- 30. Java: aprire l'applicazione di posta elettronica predefinita e creare nuovi campi di posta elettronica e campi A e Oggetto
Vuoi crearlo da zero o dopo aver letto le e-mail con le funzioni imap? Forse imap_savebody() può aiutare - http://www.csschat.com/archive/index.php/t-3287.html? – BartekR
Sì, ho bisogno di crearlo da zero. Fondamentalmente ho un'e-mail, un titolo, un corpo e un allegato e ho bisogno di creare l'EML per quello. –