3 minor things

Hello

  1. Aspose.Email.dll for .Net Framework 4.5, File Description in project properties, it is set to:
    Aspose.Email for .NET 4.0
    Misleading, better to set it correctly to 4.5.

  2. VCardContact.IsMultiContacts / MapiContact.FromVCard / VCardContact.LoadAsMultiple | Load
    How these react when opening a zero byte empty .vcf file?
    Normally they should return the “Invalid contact format.”.
    But they return indexOutOfRangeException.
    It’s safe to check for the blank file/stream length first.

The eml msg returns “Invalid message format.” fine…

Calendar returns “Source does not contains VEvent component.”

  1. Error message “Source does not contains VEvent component.” is grammatically incorrect, it should be:
    “Source does not contain VEvent component.”
    Better to replace all in the project.

Thanks :slight_smile:

@australian.dev.nerds

Could you please clarify if you are looking for a solution to the exceptions you mentioned, or are you suggesting improvements to the Aspose.Email library?

Hey AI bot, no these were all minor bug reports / minor improvement requests, have a nice time (server based time) :smiley:

Hi @australian.dev.nerds

1, 3 - Thank you for your feedback, we will address these issues.
2 - investigation ticket will be created.

1 Like

@australian.dev.nerds
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): EMAILNET-41564

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

1 Like

Thanks, and double thanks for the 25.4 improvements, however for PersonalStorage / TgzReader Async methods, are they available in .Net 4.0? And to use normal system threading which is much more useful and flexible.
And what’s the new feature EMAILNET-41528? From the description, can’t get it.
Best :slight_smile:

In .NET Framework 4.0, the async/await pattern is not natively supported. This was introduced in .NET Framework 4.5.
For .NET 4.0, you are limited to synchronous methods in the Aspose.Email API.

A new property was added to the ResourceHtmlRenderingEventArgs class:
Stream ResourceStream
If ResourceRenderingMode is EmbedIntoHtml then this stream will be embedded into the output html.
This property provides a resource (like an attachment icon) as a memory stream instead of a path to a resource file. It enables embedding the icon into the HTML.

Thanks, however, because all those were my requests, but in a different way, by providing a progress event to show the progress and cancel property to cancel in large operations.

Anyway, according to 25.4 notes: Obsolete methods SplitInto 2 overloads are now marked for removal. Use the new SplitIntoAsync methods instead.

So, .Net framework 4.0 does not support SplitIntoAsync and SplitInto will be removed too? Are you going to dismiss the 4.0 dll completely soon?

BTW, can you please confirm if this is going to implement for .net 4.0 version?
Progress event to show the progress and cancel property to cancel in large operations?
For Pst/Mbox/Tgz?

@australian.dev.nerds,

You can continue using the SplitInto methods in .NET Framework 4.0. They remain available for backward compatibility in older framework targets that do not support async/await.

Regarding the progress event and cancellation support for large operations in PST/MBOX/TGZ handling, this functionality is being implemented and isn’t limited to your requests alone.
It was introduced in response to user feedback and internal planning to improve long-running operations.

As for .NET Framework 4.0 support, although it is considered outdated and has limitations compared to modern frameworks, we currently don’t have immediate plans to drop it. However, future support will depend on demand and feasibility.

Hi @australian.dev.nerds ,

I would like to clarify this so that there is no misunderstanding: marked as obsolete 2 SplitInto methods that return a Task object and are essentially asynchronous, but do not have the Async suffix in their name. Instead 2 SplitIntoAsync have been added - these are essentially the same methods with the Async suffix for ease of reading the code. The old synchronous SplitInto methods remain in use and are not planned for removal.

1 Like

Hello and thanks for the info, just the new Async methods in 25.4 provide ability to show the progress?
Do they support IProgress or else?
Thanks.

Hi @australian.dev.nerds
Thank you for the feedback. We haven’t implemented support for IProgress in our asynchronous methods yet, but we plan to add it in the future

@australian.dev.nerds
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): EMAILNET-41569

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

Hi,
Sorry just need to confirm something:

Is EMAILNET-41564 for item 2, investigation and 1-3 are already fixed?

And what’s EMAILNET-41569 for? If IProgress, I just asked it to get your attention that without that it’s semi-useless in real world apps processing large data files. My case is already opened some time ago asking for a Cancel property, to use it in our own System.Threading.Thread, rather than Async methods which recently added, because of greater flexibility etc…

There’s a MIME Torture sample which I think is eml, but Aspose detects it as Mbox, can you please clarify?

MIME Torture.zip (6.0 KB)

Thanks so much for your kind help :slight_smile:

Hi @australian.dev.nerds

All issues (1,2,3) are fixed within this ticket. The fix will be available in the upcoming 25.5 release.

EMAILNET-41569 was created to investigate the possibility of using IProgress. We decided that it is unnecessary, because the set of events provided by the Mbox reader allows convenient control of the progress bar when loading large Mbox files. If necessary, we can send an example project showing how to do this.

Any mbox file is a set of messages in eml format separated by headers like “From rfinnie@domain.dom Thu Oct 23 23:28:34 2003”. This file contains 1 message which is preceded by such a header which is not part of MIME. Therefore our API correctly determined that this is an mbox file containing 1 message.

1 Like

Hello and thanks for the info, appreciated.

These are missing ones, just please be kind and inform me if any of them were implemented recently:

  1. I use:

MailStorageConverter.MboxToPst
and
Email.Storage.MailboxConverter.ConvertPersonalStorageToMbox

inside a Thread, so need a progress event to show to user via ProgressBar, and a Cancel property, to be able to terminate in the middle of process! Both are crucial for large data sets in real-world apps, IMO.

And a Cancel property for PersonalStorage.SplitInto method so we can terminate the process in the middle of long operations.

Any sample covering these?
Best :slight_smile:

Thanks, my bad, can we say every mbox MUST start with "From " (same capitalization) ?

“From” and one single space

@australian.dev.nerds

Yes.

@australian.dev.nerds

New versions of MailStorageConverter and MailboxConverter are in development and will be available later along with examples of their use. For now, we can provide examples of the Mbox SplitInto method as mentioned earlier.

1 Like

Thanks for the info, unless there are underlying improvements, a progress event and cancel property is fine, do you know if the new implementations will be supported in the .NET Framework 4.0 build?
Thanks again :slight_smile: