rosehgal / trashemail Goto Github PK
View Code? Open in Web Editor NEWA hosted disposable email telegram bot; Extremely privacy friendly; Proudly hosted for community.
Home Page: https://t.me/trashemail_bot
License: Apache License 2.0
A hosted disposable email telegram bot; Extremely privacy friendly; Proudly hosted for community.
Home Page: https://t.me/trashemail_bot
License: Apache License 2.0
Describe the bug
javax.mail.FolderClosedException: * BYE Server shutting down.
at com.sun.mail.imap.IMAPFolder.throwClosedException(IMAPFolder.java:2538)
at com.sun.mail.imap.IMAPFolder.idle(IMAPFolder.java:2336)
at com.sun.mail.imap.IMAPFolder.idle(IMAPFolder.java:2252)
at io.github.trashemail.EmailInteraction.ImapClient$IdleThread.run(ImapClient.java:117)
Desktop (please complete the following information):
Currently for /start and other help messages, there are really long output that telegram throws back to the user. Make it small and impactful.
Describe the bug
There is button to display "HTML Version" of email. It redirects with an http:// URL and not https://
To Reproduce
Steps to reproduce the behavior:
Expected behavior
URL must begin with https://
Is your feature request related to a problem? Please describe.
Quickly generate an email address based on telegram username.
Describe the bug
Due to which one single email is delivered for 4 times with 4 accounts in config.
Is your feature request related to a problem? Please describe.
Right now the admin data is only projected as JSON endpoint. Make beautiful dashboard beautiful.
Describe the bug
Message parsing is not working as expected. If you send a very basic HTML mail from any mail service. Following parameters a coming out to be true.
MailParser : Is plain content true
MailParser : Is HTML content true
MailParser : Is multipart true
MailParser : Is plain content Empty false
Due to which, this statement is never reached. https://github.com/r0hi7/Trashemail/blob/b67de8bfface2386071b32b9a9930d90a77d8b20/src/main/java/io/github/trashemail/utils/MailParser.java#L39
Because this is evaluated to false: https://github.com/r0hi7/Trashemail/blob/b67de8bfface2386071b32b9a9930d90a77d8b20/src/main/java/io/github/trashemail/utils/MailParser.java#L38
To Reproduce
Steps to reproduce the behavior:
**Bold text**
_Italic_
Expected behavior
Since this is multipart mail, the HTML field should be processed. And HTML message should be recorded.
Describe the bug
The issue is coming up when the local user is created and the email server while alias creation throws some error. And since the check is not made is the server returned any issue, the email is allocated to the user despite on the server side it was not created.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
If the server throws error while email-id creation, the email should not be assigned to the telegram user.
If you have any suggestions to make for this bot, please use this thread for discussion.
https://github.com/r0hi7/Trashemail/blob/fcb1903e55a8e53026918e23f58ee94e545c101d/src/main/resources/application.yml#L10 A user can create alias "[email protected]" for admin email id "[email protected]" and get incoming mail on telegram. Security Issue?
Is your feature request related to a problem? Please describe.
Can we have endpoint available for admins to broadcast messages to all the users? This can used by teams who wants to run some sort of ad campaigns.
Describe the solution you'd like
A Web form, only access to admins, make it secure.
Describe the bug
There are certain messages, which are not getting parsed by telegram API and /sendmessage api is throwing exception in that case. This is due to default parse_mode
value set to Markdown
in TelegramRequest class.
Describe the bug
The log shows the messaging exception.
javax.mail.MessagingException: Connection refused (Connection refused);
nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:196)
at io.github.trashemail.EmailInteraction.ImapClient.ensureOpen(ImapClient.java:155)
at io.github.trashemail.EmailInteraction.ImapClient$IdleThread.run(ImapClient.java:115)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:285)
at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.iap.Protocol.<init>(Protocol.java:113)
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:110)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:632)
Desktop (please complete the following information):
This is feature enhancement for load balancing.
Changes needs to be done:
I have my own top domain,so how to add that domain to this temp mail list , instead of or along with trashemail.in ?
To understand linux system service : service files
Compose a new email with trashemail address in BCC field.
Expected - Should be delivered on telegram.
Actual - Not delivered on telegram.
Reason - SMTP Alias?
Describe the bug
If the email is something of the form Rohit <[email protected]>
the email lookup with EmailsToTelegramService is failing and is not delivered to the user.
To Reproduce
Send an email with Name and email id in to field. This happens when the server send mail as contact.
2020-06-16 16:01:51.929 ERROR 10969 --- [Mail-EventQueue] i.g.t.E.ForwardMailsToTelegram : Unable to find chatId for EmailId: Rohit <[email protected]>
java.lang.NullPointerException
at io.github.trashemail.EmailsToTelegramService.ForwardMailsToTelegram.getChatIdFromEmailId(ForwardMailsToTelegram.java:57)
at io.github.trashemail.EmailsToTelegramService.ForwardMailsToTelegram.sendToTelegram(ForwardMailsToTelegram.java:74)
at io.github.trashemail.EmailsToTelegramService.ImapClient$1.messagesAdded(ImapClient.java:77)
at javax.mail.event.MessageCountEvent.dispatch(MessageCountEvent.java:150)
at javax.mail.EventQueue.run(EventQueue.java:134)
at java.base/java.lang.Thread.run(Thread.java:834)
Is your feature request related to a problem? Please describe.
Dashboard for admins to see the number of user, number of emails registered. I think good idea would be to leverage spring MVC.
Is your feature request related to a problem? Please describe.
Currently the HTML email is converted to textual representation. Offer link so that people can open the HTML version for that.
Describe the bug
When Telegram request was not parsed properly it was throwing exception, which is not handled currently. Due to which the telegram was piling up all the requests and other requests were not even responding.
ERROR 1661 --- [nio-9090-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at io.github.trashemail.Telegram.TelegramResource.messageHandler(TelegramResource.java:34) ~[classes!/:1.0.0]
at jdk.internal.reflect.GeneratedMethodAccessor85.invoke(Unknown Source) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109) ~[spring-boot-actuator-2.2.7.RELEASE.jar!/:2.2.7.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.34.jar!/:9.0.34]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
I think SMTP Alias Creation feature is not standard.
It seems you use internally mailinabox
Maybe you should document it in your README, that you expect users to run their admin panel.
More specifically I would mention that:
Kudos for the project.
This can be useful to gain insights of how many users were added for one single day.
[Mail-EventQueue] o.s.web.client.RestTemplate : Response 400 BAD_REQUEST.
Describe the bug
Telegram sendMessage API imposes a limit of 4096 characters, so in current scenario, if the server tries to send email of size more than 4096 chars, then server will throw exception due to bad response from telegram.
ERROR 2038 --- [cTaskExecutor-2] .a.i.SimpleAsyncUncaughtExceptionHandler : Unexpected exception occurred invoking async method: public void io.github.trashemail.Telegram.SendTelegramMessage.sendMessage(java.lang.String,java.lang.String)
org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"ok":false,"error_code":400,"description":"Bad Request: message is too long"}]
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:101) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:170) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:112) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:782) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:740) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:674) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:449) ~[spring-web-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at io.github.trashemail.Telegram.SendTelegramMessage.sendMessage(SendTelegramMessage.java:40) ~[classes!/:1.0.0]
at io.github.trashemail.Telegram.SendTelegramMessage$$FastClassBySpringCGLIB$$b8c07fb8.invoke(<generated>) ~[classes!/:1.0.0]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) ~[spring-aop-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
To Reproduce
Steps to reproduce the behavior:
Just send a mail of size more than 4096 bytes/chars.
Expected behavior
A excepted behaviour is to split the message into chunks of size 4096 and then process.
Describe the bug
Makefile variable for DOCKER_COMPOSE not set, which was not checked earlier and now the build is throwing errors.
https://github.com/r0hi7/Trashemail/blob/bb36119646786a43d9ceb0842836f9ca6c80e823/Makefile#L22
Describe the bug
Can't register a new temp email on the bot. It says: "Something bad just happened with me. Stay back till I get fixed"
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Should create a new email to receive emails.
Smartphone (please complete the following information):
Hello,
I discovered your bot on privacytoolsio reddit. Great work!
I came across unexpected behaviour. When I am sending an message to the email created by Trashemail Bot, it comes to my Telegram with significant delay. Delay is about 5-10 minutes, which can kind of annoying when you want to confirm a link quickly.
Could you please investigate?
This bot is simply amazing and I really appreciate your work.
Is your feature request related to a problem? Please describe.
In the current release if the user gets an email with attachments, then the attachments gets ignored.
Describe the solution you'd like
In case incoming mail contains an attachment, it should be forwarded to the telegram client as well.
Describe alternatives you've considered
Can we have attachment scanning with VT APIs?
Since the schedular is used to connect to the Imap IDLE server, and the entire implementation of server ImapClient in in multithread mode with restart rate set to 120000, which is causing this exception .
javax.mail.FolderClosedException
at com.sun.mail.imap.IMAPMessage.getProtocol(IMAPMessage.java:145)
at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1279)
at com.sun.mail.imap.IMAPMessage.getContentType(IMAPMessage.java:450)
at javax.mail.internet.MimeBodyPart.isMimeType(MimeBodyPart.java:1050)
at javax.mail.internet.MimeMessage.isMimeType(MimeMessage.java:985)
at io.github.teledot.utils.MailParser.getTextFromMessage(MailParser.java:53)
at io.github.teledot.utils.MailParser.<init>(MailParser.java:29)
at io.github.teledot.Telegram.ForwardMailsToTelegram.sendToTelegram(ForwardMailsToTelegram.java:28)
at io.github.teledot.EmailInteraction.ImapClient$1.messagesAdded(ImapClient.java:81)
at javax.mail.event.MessageCountEvent.dispatch(MessageCountEvent.java:150)
at javax.mail.EventQueue.run(EventQueue.java:134)
at java.base/java.lang.Thread.run(Thread.java:834)
Is your feature request related to a problem? Please describe.
This is passive service as in it does not host any endpoints, nor it will, so remove tomcat from it build.
/create [email protected]
This is unnessarily long. It should be
/create myemail
Even if you have multiple domains, users shouldn't have to type the full domain.
Step 1: /create myemail
Step 2: [prompt chose one of these domains for your new email]
Step 3: Congratulations. Your new email is [email protected]
Describe the bug
JavaScript and external resources are allowed in "HTML version" of email which might lead to tracking and IP address leakage, and other wide range of security issues.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
By default they should be blocked OR at least user should be given control.
Describe the bug
In the current state Custom email parser is used, which is written in this application code. The issue with the current implementation is that few of the mails are getting missed out. Since I am not logging content of which such emails are getting missed out, its difficult to look the root of this issue and fix it.
To Reproduce
Steps to reproduce the behaviour:
Can we use this : https://commons.apache.org/proper/commons-email/apidocs/org/apache/commons/mail/util/MimeMessageParser.html for parsing email.
Gotta update the link in the bot c:
HTML version link is not working for me. Try it yourself: https://trashemail.in/mails/0f3d5bb2-68ab-4d3e-a06b-3fc1319d948c.html
It's a major issue for this one - there should be a download button in the letter. But other links don't work either.
Describe the bug
(Improper Email address parsing)? leads to multiple messages on telegram.
Example
John Doe<[email protected]>
here John Doe is name and [email protected]
is email[email protected]<[email protected]>
here [email protected]
is name and [email protected]
is email address.[email protected]<[email protected]>
here [email protected]
is name and email address. It should be delivered once. but is delivered twice on telegram.To Reproduce
Steps to reproduce the behavior:
[email protected]
[email protected]<[email protected]>
Expected behavior
Email should be received once on Telegram.
Actual behavior
Email is received twice on Telegram.
Currently there are two services running in one java spring boot service. Create a Java spring boot microservice for IMAP and server.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.