tcPrettyEmail Bugs and Feature Requests

If you find a bug or want to suggest a new feature you can either:


62 thoughts on “tcPrettyEmail Bugs and Feature Requests

    […] you find a bug or have feature request, please post a comment below or on the tcPrettyEmail bugs page […]

    Frank Schmitt said:
    April 4, 2012 at 10:09

    In the installation there seems to be a file missing: BuildFailing.gif
    See the log below:

    [2012-03-12 11:38:15,862] WARN – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: Could not send email to xyz@xyz.com See DEBUG output and/or STDOUT for Stacktrace
    org.springframework.mail.MailSendException; nested exception details (1) are:
    Failed message 1:
    javax.mail.MessagingException: IOException while sending message;
    nested exception is:
    java.io.FileNotFoundException: c:\TeamCity\webapps\ROOT\plugins\tcPrettyEmailer\img\BuildFailing.gif (Das System kann die angegebene Datei nicht finden)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:930)
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:403)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:342)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:338)
    at prettyemailer.teamcity.PrettyEmailNotificator.doNotifications(PrettyEmailNotificator.java:231)
    at prettyemailer.teamcity.PrettyEmailNotificator.notifyBuildFailing(PrettyEmailNotificator.java:131)
    at jetbrains.buildServer.notification.impl.UserRulesAwareNotificationListener$NotificatorEventAdapter.buildFailing(UserRulesAwareNotificationListener.java:105)
    at jetbrains.buildServer.notification.impl.UserRulesAwareNotificationListener.buildFailing(UserRulesAwareNotificationListener.java:14)
    at jetbrains.buildServer.notification.NotificationProcessor$10.call(NotificationProcessor.java)
    at jetbrains.buildServer.notification.NotificationProcessor$16.run(NotificationProcessor.java:7)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Frank Schmitt said:
    April 11, 2012 at 06:13

    Hi, it seems not to be a problem with the installer. Apparently the file is missing in the jar file. After updating to TC 4.0.2, we had to create a file named like this again, otherwise the build failing messages would not be sent. All other notifications work (failed, successful, …), but not failing (maybe it’s not activated in your environment?). Thanks for the great plugin!

      netwolfuk responded:
      April 11, 2012 at 10:44

      Hi Frank. Are you really using tc 4.0.2? We used to use that version but are happily running on 6.5.x now. Maybe that image doesn’t exist in tc4? Let me know if you would like further help.

    Frank Schmitt said:
    April 11, 2012 at 11:05

    Sorry, wrong version. Of course I upgrated to 7.0.2 from 7.0.1 were I had to do the same (copy and renamed BuildFailed.gif to BuildFailing.gif). As I said the problem only occurs with the Notification rule “Notify when the first error occurs”, otherwise failing messages won’t be generated. The following
    images are in the webapps\ROOT\plugins\tcPrettyEmailer\img Folder:
    BuildFailed.gif, BuildStarted.gif, BuildSuccessful.gif, cancelled.gif, fixed.gif, personal.gif, star.gif. A file named BuildFailing.gif is missing.

      netwolfuk responded:
      April 12, 2012 at 01:25

      Ah. Thanks for taking the time to explain it. I’ll have a look at that when my laptop is back from being repaired.

        netwolfuk responded:
        April 17, 2012 at 11:04

        Hi Frank. I’ve released a new version which should now contain the two missing gif files (just copies of the BuildFailed.gif).

        You can get it from the download page.

    Frank Schmitt said:
    April 17, 2012 at 11:30

    Thanks a lot!

    Jas Bhardwaj said:
    June 6, 2012 at 21:56

    How I attach (or use) my own image for failed build ? Can I put
    BuildFailed.gif somewhere on the server ?

      netwolfuk responded:
      June 6, 2012 at 23:10

      Hi Jas.

      It’s simple to change the images and/or templates for tcPrettyEmail. Here is how to update the BuildFailed.gif

      1. Download just the templates and unzip them onto the file system on your server.
      2. Point tcPrettyEmail at the new attachment-path as per the docs.
      3. Replace the BuildFailed.gif with whatever you want.
    Jas Bhardwaj said:
    June 7, 2012 at 16:41

    I would like to embed an image in the footer.vm of the templates. Is it possible by ?

      netwolfuk responded:
      June 7, 2012 at 23:26

      It should be possible. If you want to include the build status image then you would add something like <img src='cid:buildState000'> to the template. Have a look at header.vm for an example.

      If you want to add a different image, you would need to attach that image to the email message. That would require some extra code in PrettyEmailMimeMessageHelper. Have a look near the bottom at the existing code that does the image attachments via calls to addInline().

    Jas Bhardwaj said:
    June 8, 2012 at 01:47

    I don’t see the source for PrettyEmailMimeMessageHelper. What the location of the source file

    Jas Bhardwaj said:
    June 8, 2012 at 01:47

    Also, what buildState000 means ? How it know what file to use for the image ?

    netwolfuk responded:
    June 8, 2012 at 02:14

    When adding attachments to an email,using the Spring mail handler they are stored with a “key”. This key is then referred to in the HTML if one wants to reference the attachment for display in the HTML. buildState000 is simply the name of the key I used when attaching the file, and can be seen in the source code at line 60.

    Jas Bhardwaj said:
    June 8, 2012 at 19:02

    Ok, thanks for the info. I downloaded the src from sourceforge and made changes. How do I get the number of errors from getCompileErrors(). Looks like I cannot use getCompileErrors() in scalar context as getCompileErrors() > 0

    Mark said:
    July 9, 2013 at 18:24

    Is tcPrettyEmail compatible with Teamcity 8? I’m trying to get it to work in our test environment and it’s silently failing; I get the default emails instead.

      netwolfuk responded:
      July 9, 2013 at 19:23

      Hi Mark. It’s working for me in TC8. There is an extra notifier called Pretty Email in the Notifications tab of My Settings & Tools. It is addition to the standard email notifier. This is where you configure which builds this notifier watches.

        Mark said:
        July 9, 2013 at 20:55

        I’m sorry, I see it now… thanks! I was expecting it to take over for the Email Notifier. You may want to add a note clarifying how it works to the documentation at http://sourceforge.net/apps/trac/tcplugins/wiki/TcPrettyEmail . Thanks again for your prompt answer!

        netwolfuk responded:
        July 9, 2013 at 21:45

        Good point. I’ll add that. Thanks.

        netwolfuk responded:
        July 11, 2013 at 09:57

        Done.

    Chris Carter said:
    October 8, 2013 at 00:10

    Hi there,

    We’re attempting to use this plugin with Teamcity 8, but are running into a strange error with the pluging starting up – it’s getting a FileNotFoundException when trying to initialize the Velocity template system:

    2013-10-07 23:37:31,984] DEBUG – jetbrains.buildServer.SERVER – Unable to configure AvalonLogSystem : java.io.FileNotFoundException: /velocity.log (Permission denied)
    java.lang.Exception: Unable to configure AvalonLogSystem : java.io.FileNotFoundException: /velocity.log (Permission denied)
    at org.apache.velocity.runtime.log.AvalonLogSystem.init(AvalonLogSystem.java:92)
    at org.apache.velocity.runtime.log.LogManager.createLogSystem(LogManager.java:127)
    at org.apache.velocity.runtime.RuntimeInstance.initializeLogger(RuntimeInstance.java:553)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:226)
    at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:80)
    at prettyemailer.teamcity.PrettyEmailNotificator.initVelocity(PrettyEmailNotificator.java:103)
    at prettyemailer.teamcity.PrettyEmailNotificator.register(PrettyEmailNotificator.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
    at jetbrains.buildServer.plugins.spring.SpringPluginLoader.pluginClassesLoaded(SpringPluginLoader.java:72)
    at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:115)
    at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:67)
    at com.sun.proxy.$Proxy7.pluginClassesLoaded(Unknown Source)
    at jetbrains.buildServer.plugins.PluginManagerImpl$2.visitPlugin(PluginManagerImpl.java:122)
    at jetbrains.buildServer.plugins.PluginsCollection.foreachLoadedPlugins(PluginsCollection.java:107)
    at jetbrains.buildServer.plugins.PluginManagerImpl.firePluginClassesLoaded(PluginManagerImpl.java:120)
    at jetbrains.buildServer.plugins.PluginManagerImpl.loadPlugins(PluginManagerImpl.java:80)
    at jetbrains.buildServer.web.plugins.PluginManagerConfigurator.initializePlugins(PluginManagerConfigurator.java:9)
    at jetbrains.buildServer.web.impl.BuildServerConfigurator.loadConfiguration(BuildServerConfigurator.java:98)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet$WebApplicationCreatorAndDestroyer.createApplication(TeamCityDispatcherServlet.java:15)
    at jetbrains.buildServer.maintenance.StartupProcessor.doApplicationStarting(StartupProcessor.java:73)
    at jetbrains.buildServer.maintenance.StartupProcessor.processConcreteStage(StartupProcessor.java:490)
    at jetbrains.buildServer.maintenance.StartupProcessor.processConcreteStageSafe(StartupProcessor.java:479)
    at jetbrains.buildServer.maintenance.StartupProcessor.processTeamCityLifecycle(StartupProcessor.java:435)
    at jetbrains.buildServer.maintenance.StartupProcessor.access$000(StartupProcessor.java:85)
    at jetbrains.buildServer.maintenance.StartupProcessor$1.run(StartupProcessor.java:1)
    at java.lang.Thread.run(Thread.java:724)

    Do you have any idea where that /velocity.log path would be attempting to read or write from? We have everything running under a single user, teamcity, with the core server installed in /opt/teamcity/8.0.4 and the data directory set to /mnt/teamcity/build. Our pretty-email configuration block in main-config.xml just sets the smtp configuration for now.

    Thanks for any pointers you can give us!

      netwolfuk responded:
      October 8, 2013 at 00:36

      Hi Chris. Have you run the plugin before? Is it failing after upgrading tc or prettyemail or is this a fresh install?

        Chris Carter said:
        October 8, 2013 at 04:08

        I have indeed run the plugin before, though it’s been a year and a half or so since I set it up last time – this is a new install though.

      netwolfuk responded:
      October 8, 2013 at 02:54

      I think the velocity log is created in the current directory relative to where you are when you start TeamCity. I suggest the following.

      cd /opt/teamcity/8.0.4 && touch velocity.log && ./bin/teamcity-server.sh start

        Chris Carter said:
        October 8, 2013 at 04:13

        Interesting. I’ll give that a try – we’re starting this from an upstart script so I’m not sure where it’s going to path things from – I suppose the /velocity.log bit actually means the root of the filesystem. Thanks for your help, and for the plugin, it’s been a great help over the years!

        netwolfuk responded:
        October 8, 2013 at 05:00

        Great. Let me know how you get on. Thanks for your complimentary feedback too. It’s really nice to know people appreciate one’s work.

        Chris Carter said:
        October 8, 2013 at 14:20

        I added velocity.log to the root of our filesystem, and that did the trick.

        netwolfuk responded:
        October 8, 2013 at 18:51

        ok. Thanks for the update. I’ll look at some way of asking TeamCity for its log dir and try to create it in there.

    Aliaksei said:
    October 30, 2013 at 14:24

    Hi Netwolf,

    Thanks a lot for your tcPrettyEmail plugin! Though now I have to ask for some help: we have a strange issue with notification not working for “assigned” investigations in TC8.

    In TC7 everything was smooth, we switched most of notification rules to tcPrettyEmail. After the recent upgrade to TC8.0.4 all looked fine, all usual notifications were sent out as before.

    However recently we noticed that one rule has no effect: “System wide events – Investigation assigned to me”. It works when switched on in standard TC-way, but not in tcPrettyEmail.

    So far I don’t see anything special in logs for this matter. Could you please point out the debug direction?

      netwolfuk responded:
      November 8, 2013 at 17:58

      Hi Aliaksei. Perhaps something has changed in tc8. I thought I had tested some early builds of tc8 but I’m not running 8.0.4 yet. Also I had all my computers stolen from my house so am not getting an opportunity to work on this project at the moment.

    Fabian Depry said:
    December 10, 2013 at 19:45

    Hello,

    I really like the plugin, it’s a big improvement on the default email, but I was wondering if it would be possible for the default pretty template to have some Git information. At the very least, it seems like the branch name that got built should be displayed somewhere. The default email has the branch name and the Git commit.

    If not for the default template, is it something I would be able to add in my own template? I haven’t looked too much into it yet, but am I going to have access to the Git information?

    Thanks!

    Digitalje said:
    January 15, 2014 at 13:24

    Hello,

    We were excited to have found PrettyEmail. It seems like it produce more meaningful emails than the standard email that comes with TeamCity. We have installed the plug and configured the main-config.xml. When we attempt to run a build, we don’t get the emails. After we dug around in the teamcity-server log we found the following error:

    WARN – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: Could not assemble the BuildStarted prettyemail for bt6 See DEBUG output and/or STDOUT for Stacktrace

    Any idea what we have done incorrectly?

    We are running TeamCity version: 8.0.5 (build 27692), data format version 628

    Any help would be greatly appreciated.

    Thanks,
    digitalje

      netwolfuk responded:
      January 15, 2014 at 13:51

      Could you enable debug logging in TeamCity and post the stack trace for the error? There is information on the TeamCity documentation site about how to do that. It’s a change to the log4j config file.

        Digitalje said:
        January 15, 2014 at 15:26

        Thank you for the quick response! Here is the output: [2014-01-15 10:12:30,563] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator:doNotifications(BuildStarted) called for build bt6 [2014-01-15 10:12:30,589] WARN – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: Could not assemble the BuildStarted prettyemail for bt6 See DEBUG output and/or STDOUT for Stacktrace [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: Attempting to send email using the following configuration [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: from-address: **********@gmail.com [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: from-name : CI Server [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: host : smtp.gmail.com [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: port : 587 [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: username : ************ [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: starttls-enabled: true [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: password : HIDDEN [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: template-path : /opt/TeamCity/tcPrettyEmail/templates/ [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: attachment-path: /opt/TeamCity/tcPrettyEmail/img/ [2014-01-15 10:12:30,589] DEBUG – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: attach-images : true [2014-01-15 10:12:30,601] DEBUG – jetbrains.buildServer.SERVER – Unable to find resource ’email-BuildStarted.vm’ org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource ’email-BuildStarted.vm’ at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:458) at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:341) at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831) at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813) at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:470) at prettyemailer.teamcity.PrettyEmailMimeMessageHelper.generateEmail(PrettyEmailMimeMessageHelper.java:45) at prettyemailer.teamcity.PrettyEmailNotificator.doNotifications(PrettyEmailNotificator.java:173) at prettyemailer.teamcity.PrettyEmailNotificator.notifyBuildStarted(PrettyEmailNotificator.java:223) at jetbrains.buildServer.notification.impl.UserRulesAwareNotificationListener$NotificatorEventAdapter.buildStarted(UserRulesAwareNotificationListener.java:166) at jetbrains.buildServer.notification.impl.UserRulesAwareNotificationListener.buildStarted(UserRulesAwareNotificationListener.java:19) at jetbrains.buildServer.notification.NotificationProcessor$1.call(NotificationProcessor.java:2) at jetbrains.buildServer.notification.NotificationProcessor$18.run(NotificationProcessor.java:1) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) [2014-01-15 10:12:32,575] DEBUG – ains.buildServer.util.WatchDog – Flush Queue start: 0 msec [2014-01-15 10:12:32,577] DEBUG – ains.buildServer.util.WatchDog – Flush Queue done: 2 msec [2014-01-15 10:12:33,110] DEBUG – buildLog.MessagesStateProvider – Flow started: -857168297, parent flow: -642892918 [2014-01-15 10:12:33,110] DEBUG – buildLog.MessagesStateProvider – Flow: -857168297 not found, creating it in flow: FlowMessagesState{myFlowId=-642892918, myParentState=null, myChildStates=[]}

        netwolfuk responded:
        January 15, 2014 at 18:05

        For some reason the plugin can’t find the template files. Some users have this issue and I’m not sure why. I’d suggest downloading the extra zip file containing the templates and unzipping it somewhere. Then update the main-config.xml to set the template location.

        http://sourceforge.net/projects/tcplugins/files/tcPrettyEmail_plugin/templates/

    digitalje said:
    January 16, 2014 at 13:12

    THANK YOU! Once I copied the templates it worked. It looks great. Thank you again for this great plugin.

      netwolfuk responded:
      January 16, 2014 at 14:30

      Fantastic. I’m glad that fixed it.

    codewiz said:
    May 15, 2014 at 13:50

    Hello,

    I just started using PrettyEmail and it works great.

    I want to know if there is a way to add info on Code Inspection and Duplicate Finder results to the email that is sent out?

    thanks

      netwolfuk responded:
      May 16, 2014 at 09:09

      I suspect that would require some enhancements to the plugin.
      I wonder if that would be best served by some sort of extra plugin architecture, or at least a standard interface that renderers implement.
      The email messages are built using velocity. There might be a standard way to extend velocity to load them. I’ll have a look into it. I’m in the process of moving to github. That at least gives me a way to track these sorts of requests.

        codewiz said:
        May 16, 2014 at 14:49

        Thanks Netwolfuk! For code inspection/Analysis I’m using NDepend.

        Thanks.

        netwolfuk responded:
        May 16, 2014 at 15:04

        Thanks. That is good to know so I can see what output to expect.

        oerh said:
        March 31, 2016 at 13:07

        Hello,

        Please was anything done on this?

        netwolfuk responded:
        March 31, 2016 at 18:23

        No. Sorry I didn’t get very far with that. It’s a quite specific use case which seems like it should have a more generic solution but that’s about as far as I got with it.

    Daniel said:
    June 10, 2014 at 09:48

    The teamcity-server.log says ‘Could not assemble the BuildSuccessful prettyemail for bt4 See DEBUG output and/or STDOUT for Stacktrace’. I’m using TeamCity 8.1.2. Where can i find the Debug output?

      netwolfuk responded:
      June 10, 2014 at 09:55

      The default log level in TeamCity is info. To enable debug logging you need to edit the log4j.xml file. There is an article on the TeamCity documentation site about how to enable debug logging.

      netwolfuk responded:
      June 10, 2014 at 09:59

      It appears that some settings for logging can now be changed in the ui. Try this link. http://confluence.jetbrains.com/display/TCD8/TeamCity+Server+Logs

        Daniel said:
        June 10, 2014 at 10:19

        I tried the fix for Digitalje, copy the templates and change the template path. It seems to work for that, but Debug output says an authentication error. I wonder why teamcity can send the normal build mails with the same settings. Thanks for your help! I’ll reply if i get it to work 😉

        Daniel said:
        June 10, 2014 at 10:36

        I can’t fix the authentication error. The Debug output says:
        [2014-06-10 12:28:22,814] WARN – jetbrains.buildServer.SERVER – PrettyEmailNotificator :: Could not send email to xxx (xxx@xxx.xx) See DEBUG output and/or STDOUT for Stacktrace
        [2014-06-10 12:28:22,814] DEBUG – jetbrains.buildServer.SERVER – Authentication failed; nested exception is javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client
        org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client
        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:392)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
        at prettyemailer.teamcity.PrettyEmailNotificator.doNotifications(PrettyEmailNotificator.java:189)
        at prettyemailer.teamcity.PrettyEmailNotificator.notifyBuildSuccessful(PrettyEmailNotificator.java:228)
        at jetbrains.buildServer.notification.impl.UserRulesAwareNotificationListener$NotificatorEventAdapter.buildSuccessful(UserRulesAwareNotificationListener.java:235)
        at jetbrains.buildServer.notification.impl.UserRulesAwareNotificationListener.buildSuccessful(UserRulesAwareNotificationListener.java:55)
        at jetbrains.buildServer.notification.NotificationProcessor$2.call(NotificationProcessor.java)
        at jetbrains.buildServer.notification.NotificationProcessor$18.run(NotificationProcessor.java:5)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
        Caused by: javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client
        at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:765)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
        at javax.mail.Service.connect(Service.java:345)
        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
        … 11 more

        The server don’t need username and password, so i removed all the optional attributes from the main-config.xml. There are only the host, port and from-address attributes in the smtp tag. But it’s still the same exception.

        netwolfuk responded:
        June 10, 2014 at 10:53

        Can you tell me which mail server are you using? Also, you might need to restart TeamCity after removing entries from the pretty email config. I’m not sure how well tested config changes are since it doesn’t happen often.

    Daniel said:
    June 12, 2014 at 07:32

    Hi netwolfuk!
    I use an exchange email server in the same domain and i fixed my problem using an email account with username and password. I guess the plugin has a problem with emailservers without username and password. A restart did not work.
    Thank you for your fast reply and thank you for this great plugin.
    Is it possible to add further informations to the email-BuildSuccessful template like the code coverage percentage from dotCover report?

      netwolfuk responded:
      June 12, 2014 at 07:43

      That’s great. Thanks for letting me know it worked with a certain type of exchange email account. I’ll email you about the specifics so I can add it to the documentation.
      Your request for coverage is similar to another recent request. I’ve been thinking about a generic solution and think that having a way to include an HTML file into the email is probably the way forward. I imagine that the plugin could look in the artifacts from TeamCity for an email-include directory and build that into the body on the pretty email message. There would need to be some smarts to also include any images inside html but I think it should be possible. It would be an exercise for the user to figure out how to generate applicable HTML to include in the email.

    Brian Kays said:
    July 31, 2014 at 20:30

    I just downloaded the tcPrettyEmail plugin but I can’t figure out how to configure it? The links to the documentation for it go to the web hooks wiki at source forge. The documentation doesn’t seem to exist anymore. Is there somewhere else I can find out how to use the plugin?

    Thanks!

      netwolfuk responded:
      July 31, 2014 at 20:40

      Yes. The wiki has gone away. Until I get to rewrite the documentation you can have a look at the example configuration files here: https://github.com/tcplugins/tcPrettyEmail/tree/master/src/test/resources

        Brian Kays said:
        July 31, 2014 at 20:54

        Sorry if this is a basic question (I’m very new to TC), but where do I put the XML you have in the example configuration files? It says in the configuration for the email notifier to edit the files in /config/_notifications/, but I don’t see that directory on the file system.

        Also will this plugin override the TC email notifier or do I need to disable it?

        Thanks for you help, I’m looking forward to getting this up and running.

        netwolfuk responded:
        August 1, 2014 at 00:36

        I’m not in front if a computer but from memory I think that you need to add the XML to your main-config.xml.

        It will appear as another notifier in each user’s notification panel in TeamCity.

        You can run it in addition to the existing notifiers.

      netwolfuk responded:
      August 5, 2014 at 10:36

      I’ve re-written some docs here: https://github.com/tcplugins/tcPrettyEmail/wiki
      Please let me know if you need further assistance.

    pdalbe01 said:
    March 31, 2016 at 14:25

    @netwolfuk – First, thank you very much for the excellent plugin. Your e-mail notifications are MUCH nicer than the built-in ones.

    I recently submitted an issue on GitHub; I wasn’t sure if you prefer reporting issues here on the blog or on GitHub, so I did both. The details can be found here: https://github.com/tcplugins/tcPrettyEmail/issues/2 but there seems to be a NullPointerException inside the tcPretty plugin.

    Any help provided would be much appreciated; thanks so much!!

      netwolfuk responded:
      March 31, 2016 at 18:20

      Hi thanks for reporting it. Github is preferred. I should update this page to reflect that. I had not noticed that the specific case was failing to send an email.

    […] tcPrettyEmail Bugs and Feature Requests […]

Leave a comment