Thanks - that's great. I noticed you have checked this into the Abp MailKitSmtpEmailSender too now. Will this be included in the version 6.0 final release? Or will it be sometime later that we will no longer need to do this override ourselves?
Thanks a lot.
Hi, Are you saying that in an ABP application we are forced to use the Google SMTP server? And therefore create a gmail email address for the sending of emails from the application.
I am sending email from the 123-reg SMTP server and so I am not using the Google SMTP server. The problem is that because we can't set the MessageId using the ABP IEmailSender the Gmail Spam filters prevent emails from being delivered to Gmail addresses meaning people with Gmail accounts can't register for the application and confirm their emails.
If we could set the MessageId in the email header we could send email from any SMTP server and they would pass through the spam filter used by Gmail. It seems to me that if the ABP email sending service added this header the issue would be fixed.
The emails are sent successfully to email accounts that don't check the messageId for spam with my current setup.
When I deploy the application to a docker container on azure I find that emails to gmail accounts are not accepted. I have created an email with 123-reg server and am using this to send out the emails on user registration.
The email gets sent successfully to many email accounts I have but is rejected by all the gmail accounts I have tested. The response is below. How can we set the MessageId in abp?
Any help would be appreciated as I need to allow users with gmail addresses to be able to register.
FYI, The message id header is not required currently, but is used by several spam filters including gmail. As for what it needs to be set to, something unique.
Reason: There was an error while attempting to deliver your message with [Subject: "Please Confirm your email"] to adam.musson@gmail.com. MTA p3plwbeout16-03.prod.phx3.secureserver.net received this response from the destination host IP - 142.250.141.27 - 550 , 550-5.7.1 [173.201.193.58] Messages missing a valid messageId header are not 550 5.7.1 accepted. lb10-20020a17090b4a4a00b00200b96d234csi12474831pjb.49 - gsmtp
Hi, The LeptonX theme is now the default but there are a number of things that are annoying and difficult to work out without documentation or source code. Can you tell me where I can find guidance on the following?
I can override the Image in the Login form using the BrandingProvider but it has an annoying Lepton watermark and Lepton logo above the login form remains even though the BrandingProvider is specifying another logo which is picked up by the other main standard layout. How can I override this as I do not have the source code to see what the original form has?
There is no language selector on the Login form. Is this intentional?
There is no code available for the LeptonX theme but there is for the Lepton theme. Should we be using Lepton or LeptonX going forward?
I am using version 6.0.0-rc.3 Thanks for your help. Adam
Hi enisn, Thanks for looking at this. I created a new service with the name CategoryService using the abp cli command to add it to the services directory of the main solution. The Category entity is in the new CategoryService domain and all the code looks similar to that in the ProductService except that it is dealing with Category and the CategoryDtos. Category is defined as
public class Category : Entity<Guid>
{
public string Name { get; private set; }
protected Category()
{
}
public Category(Guid id, string name): base(id)
{
SetName(name);
}
public void SetName(string name)
{
Check.NotNullOrEmpty(name, nameof(name), 100, 3);
Name = name;
}
}
The Url https://localhost:44725 is the Url for the new CategoryService. The Web Gateway URL is https://localhost:44325 which I think is the standard.
If there is anything else let me know. But I followed the ProductService as a guide very closely and there is very little difference other than the fact that it is dealing with Category entities.
Could not found remote action for method Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
[RemoteService(Name = CategoryServiceRemoteServiceConsts.RemoteServiceName)]
[Area("categoryService")]
[Route("api/category-service/categories")]
public class CategoryController : CategoryServiceController, ICategoryAppService
{
private readonly ICategoryAppService _categoryAppService;
public CategoryController(ICategoryAppService categoryAppService)
{
_categoryAppService = categoryAppService;
}
//doesn't work
[HttpGet]
[Route("{id}")]
public virtual Task<CategoryDto> GetAsync(Guid id)
{
return _categoryAppService.GetAsync(id);
}
//works
[HttpGet]
public virtual Task<PagedResultDto<CategoryDto>> GetListAsync(GetCategoriesInput input)
{
return _categoryAppService.GetListAsync(input);
}
//doesn't work
[HttpPost]
public virtual Task<CategoryDto> CreateAsync(CategoryCreateDto input)
{
return _categoryAppService.CreateAsync(input);
}
[HttpPut]
[Route("{id}")]
public virtual Task<CategoryDto> UpdateAsync(Guid id, CategoryUpdateDto input)
{
return _categoryAppService.UpdateAsync(id, input);
}
[HttpDelete]
[Route("{id}")]
public virtual Task DeleteAsync(Guid id)
{
return _categoryAppService.DeleteAsync(id);
}
}
}
Where am I going wrong? Is there something simple I am missing. Thanks.