Envoyer un courriel à moi-même à l'aide de SMTP et Apache Camel
Je suis en train d'écrire un Apache Camel route pour l'envoi d'e-mail à moi-même, basée sur la Partie 4 de ce tutoriel:
https://camel.apache.org/tutorial-example-reportincident.html
from("file://target/subfolder")
.setHeader("subject", constant("new incident reported"))
.convertBodyTo(String.class)
//send the email
.to("smtp://myID@localhost?password=&[email protected]");
Mais je vais faire cela, et pas de mail dans ma boîte de réception:
395 [main] DEBUG org.apache.camel.example.reportincident.
ReportIncidentRoutesTest - Routing Rules are:
[EventDrivenConsumerRoute[Endpoint[direct:start] ->
Delegate(Delegate(Pipeline[DeadLetterChannel[Delegate(setHeader(org.apache.
camel.file.name, BeanExpression[bean:org.apache.camel.example.reportincident.
FilenameGenerator@244aeb52 method: generateFilename])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(sendTo(Endpoint[velocity:MailBody.vm])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(sendTo(Endpoint[file://target/subfolder])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]]]))],
EventDrivenConsumerRoute[Endpoint[file://target/subfolder] ->
Delegate(Delegate(Pipeline[DeadLetterChannel[Delegate(setHeader(To,
myname@mycompany.com)), RecipientList[log:org.apache.camel.DeadLetterChannel?
level=error]], DeadLetterChannel[Delegate(setHeader(subject, new incident
reported)), RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(org.apache.camel.processor.
ConvertBodyProcessor@6e79839),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]],
DeadLetterChannel[Delegate(sendTo(Endpoint[smtp://myID@localhost?
password=&to=myname@mycompany.com])),
RecipientList[log:org.apache.camel.DeadLetterChannel?level=error]]]))]]
Je ne sais pas pourquoi, ou comment je peux résoudre ce problème. J'ai aussi l'impression de recevoir ces mises en garde, quand je lance le test:
[WARNING] The POM for com.sun.xml.fastinfoset:FastInfoset:jar:1.2.2 is invalid,
transitive dependencies (if any) will not be available,
enable debug logging for more details
[WARNING] The POM for com.sun.xml.bind:jaxb-impl:jar:2.1.7 is invalid,
transitive dependencies (if any) will not be available,
enable debug logging for more details
[WARNING] The POM for com.sun.xml.bind:jaxb-xjc:jar:2.1.7 is invalid,
transitive dependencies (if any) will not be available,
enable debug logging for more details
...
606 [main] WARN org.apache.camel.impl.converter.DefaultTypeConverter -
Overriding type converter from: StaticMethodTypeConverter:
public static java.lang.String org.apache.camel.converter.IOConverter.
toString(javax.xml.transform.Source) throws javax.xml.transform.
TransformerException,java.io.IOException to: InstanceMethodTypeConverter: public
java.lang.String org.apache.camel.converter.jaxp.XmlConverter.toString
(javax.xml.transform.Source) throws javax.xml.transform.TransformerException
Ce type de fichier êtes-vous consommer?
Êtes-vous à l'aide personnalisée de type convertisseurs?
Le message d'avertissement est inoffensif. Vous pouvez avoir besoin de vérifier si il y a un avertissement ou un message d'erreur.
En réponse aux questions suivantes: (1) Le type de fichier est un .vm. (2) je ne pense pas qu'il y a tout type personnalisé convertisseurs. (3) je ne vois pas d'autres avertissements ou messages d'erreur.
Tout d'abord, essayez d'envoyer un fichier texte et non pas un modèle de Vitesse. Peut-être, à dos de Chameau essaie de faire de la magie.
Êtes-vous à l'aide personnalisée de type convertisseurs?
Le message d'avertissement est inoffensif. Vous pouvez avoir besoin de vérifier si il y a un avertissement ou un message d'erreur.
En réponse aux questions suivantes: (1) Le type de fichier est un .vm. (2) je ne pense pas qu'il y a tout type personnalisé convertisseurs. (3) je ne vois pas d'autres avertissements ou messages d'erreur.
Tout d'abord, essayez d'envoyer un fichier texte et non pas un modèle de Vitesse. Peut-être, à dos de Chameau essaie de faire de la magie.
OriginalL'auteur La-comadreja | 2014-04-25
Vous devez vous connecter pour publier un commentaire.
Le DÉBOGAGE et d'AVERTIR les messages peuvent être ignorés.
Suivants définition de la route a fonctionné pour moi à l'aide de Chameau v2.12.3:
Après le début de l'itinéraire, vous devriez voir un message comme
Working on file XXX
dans le journal.Peut-être pas le Chameau, le routage est le problème, mais le serveur SMTP sur localhost. Essayez d'envoyer un e-mail à votre serveur SMTP en utilisant un autre client de messagerie et de vérifier si vous recevez un e-mail. Un exemple de comment faire cela en utilisant un shell bash sur MacOS peut être trouvé ici.
S'il vous plaît, vérifiez si votre serveur SMTP sur localhost utilise le port par défaut. Si non, ajouter le port à l'URI comme
localhost:MY_PORT
. Pour SMTP par défaut est25
, pour SMTPS c'est465
. Le port actif peut être vérifiée à l'aide de telnet commetelnet SERVERNAME 25
.Le serveur SMTP peut-être pas le problème mais la lecture des fichiers. Vérifiez si les fichiers dans le
target/subfolder
sont lisibles et pas verrouillé par le Chameau, c'est à dire vérifier si il n'y a pas defileName.camelLock
fichier.Enfin, vérifiez que votre route continue de fonctionner et ne s'arrête pas avant que tous vos fichiers sont analysés, voir http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html pour plus d'informations à ce sujet.
Pour résumer ma réponse: Commencez petit, fractionner les grands itinéraires en plus petits et de les tester séparément.
EDIT:
La plus récente du code source du tutoriel-exemple-reportincident peut être trouvé ici: https://github.com/apache/camel/tree/master/examples/camel-example-reportincident.
Le
log
EIP a été introduit en Chameau v2.2 (voir la section camel.apache.org/logeip.html). Je vous recommande fortement de mettre à niveau vers la dernière version 2.12.3.le problème est que je suis passer par un tutoriel écrit dans une version plus ancienne.
Utiliser un tutoriel...?
Votre Maven local peut être rompu. Voir stackoverflow.com/questions/4856307/.... Résoudre ce problème en supprimant le correspondant téléchargement échoué répertoire des artefacts dans votre local repo.
OriginalL'auteur Peter Keller