CVS edit link for zugaldia

I'm a long term user and project manager for Drupal related projects, and I have even attended a Drupalcon (Szeged). Normally my contributions haven't been code related, or the code needed to remain private due to unfortunate legal requirements.

Now I've developed a module which implements the core MailSystemInterface to redirect all Drupal 7 email traffic to the recently announce Amazon Simple Email Service (Amazon SES) service. I'm not affiliated with Amazon.

If requested, I'd be happy to share the current code for revision. Right now I can show this picture to demonstrate the code works (well, you're gonna need to believe me!): http://www.flickr.com/photos/azugaldia/5392955183/

Needless to say, I'd be glad to contribute and participate in Drupal in more ways, fixing bugs, or helping with other modules.

Please do not hesitate to contact me if you have any further questions.

Cheers.

Comments

zugaldia’s picture

Component: Miscellaneous » miscellaneous
Status: Postponed (maintainer needs more info) » Needs review
StatusFileSize
new15.77 KB

Uploading the module code for review.

avpaderno’s picture

Status: Needs review » Needs work
Issue tags: +Module review

Hello, and thank you for applying for a CVS account. I am adding the review tags, and some volunteers will review the code, pointing out what it needs to be changed.

I will report here a little checklist:

  • The code needs to follow the coding standards; check in particular the format used for the control structures, and the name given to PHP variables, Drupal persistent variables, functions defined from the module.
  • Files available from third-party sites should not be included within the module/theme. This is particularly true for files that are not licensed under GPL License v2, but it is also true for files that are licensed under the same license used by Drupal.
  • The license file should not be included as well; the packaging script already include that file. In any cases, the code for modules/themes committed in drupal.org repository needs to be released under the same license used by Drupal; any compatible license is not allowed.
  • Check the code passes the Coder validation.

As per requirements, the motivation message should include more than two sentences (the exact words are a few paragraphs) that describe the project features. For themes, it should include also a screenshot of the theme (at least 640x400 pixels), and (when possible) a link to a working demo site; for modules, it should include also a comparison with the existing solutions.

robinpc’s picture

Very interested in a module of this nature; also interested in how it might be backported to V6.

Given the integration between Amazon SES and PostFix, what advantages would a module offer over a pure pass-through implementation where Drupal addresses a mail UA like sendmail, and sendmail addresses Amazon SES? Would there be additional features and integration?

zugaldia’s picture

Status: Needs work » Needs review
StatusFileSize
new418 bytes
new3.99 KB

Hi,

Thanks for the prompt review. Regarding the checklist:

* I've updated the code to make it follows Drupal coding standards to the best of my knowledge (see: ses-0.1.tar.gz enclosed). Also, it has passed the validation of Coder and I enclose the review as well.

* I'm not including any third-party libraries, it's only my code, licensed under GPL.

* As requested, I've removed the LICENSE.txt file from the tarball.

Please let me know if there's anything else you need from my part.

zugaldia’s picture

Hi Robert,

Thanks for your comments. I see further integration between Amazon SES and Drupal going this way. For example, we could enable the list/verification/delete of new "from" addresses from Drupal itself, have control over current quota, or being able to visualize send statistics (main methods in current SES API).

Also, this module is appropriate for Drupal installs in which we cannot control the messaging system (i.e. sharing hosting), or whenever there might be any kind of restrictions (i.e. local only e-mail, quotas).

In cases where you can modify the set up of Postfix (and therefore connect to SES from there as you mention), this module allows to use SES without changing your local config if wanted, which may affect other apps running within the same server. With the added value of improved integration as mentioned above.

Regarding 6.x integration, I've only tested the code in a 7.x install as it's currently my main development system, but I'd be glad to hear any issues in 6.x and provide support it if there's any interest. What do you think?

wonder95’s picture

After reviewing this module, I see a few small items:

  • Not all created variables are deleted in hook_uninstall (granted, there are many modules that don't, too).
  • The module is automatically enabled as soon as it is installed. This is a problem because there are multiple steps that need to be configured with Amazon before it can be used.
  • When sending an email, it doesn't verify that the site_mail value has been verified with SES before attempting to send mail, so the user has to deal with the Amazon error. Wouldn't it be more efficient to verify
    that in the module first?
  • The Creeper module already takes care of the Amazon SES SDK, so why re-invent the wheel and not just use Creeper?
  • There are still code formatting issues:
    • Spaces between parentheses and text contained in them.
    • Double the amount of space indentation (using 4, should be 2) in some places (such as ses_menu() and ses_permission()).

    I'm not sure why Coder didn't catch these (unless it just looks for minimum spacing, not too much).

SeanBannister’s picture

Just noticed another user applying for CVS access with a similar module, maybe you could both work together http://drupal.org/node/1043276

zugaldia’s picture

StatusFileSize
new418 bytes
new4.56 KB

Hi wonder95,

Thanks for this, I'm enclosing an updated version of the module with some minor changes to address your comments:

  • All created variables are now deleted in hook_uninstall().
  • Please note the module is not enabled by default (ses_on = 0) in .install, and you need to enter AWS credentials in order to change this to 1.
  • To avoid the Amazon error, I have changed the configuration page and it now shows a radio form list with all the addresses you have already verified with Amazon. In case there are none, we direct the user to the appropriate Amazon page. In future releases we could implement this from the admin UI.
  • Creeper module is only available for 6.x while we're targeting 7.x but, following your advice, I have decoupled the calls to the AWS SDK PHP from the main code so that's easy to use Creeper once 7.x support is available.
  • I fixed the code formatting issues you mention and re-run Coder (review attached).
zugaldia’s picture

Hi Sean, I've reviewed the code Ryan Palmer submitted yesterday and it seems we've followed very similar approaches. I don't see any problems to work together.

zugaldia’s picture

Dear reviewers, Ryan and I are more than happy to work together in this module (see: #1043276: [D7] AMazon SES). Would it be possible to grant CVS access to both?

zzolo’s picture

Status: Needs review » Postponed

Hi. Please read all the following and the links provided as this is very important information about your CVS Application:

Drupal.org has moved from CVS to Git! This is a very significant change for the Drupal community and for your application. Please read the following documentation on how this affects and benefits you and the application process:
Migrating from CVS Applications to (Git) Full Project Applications

  • The status of this application will be put to "postponed" and by following the instructions in the above link, you will be able to reopen it.
  • Or if your application has been "needs work" for more than 5 weeks, your application will be marked as "closed (won't fix)". You can still reopen it, by reading the instructions above.
zugaldia’s picture

Status: Postponed » Needs review

I'm proposing here #1043276: [D7] AMazon SES to use the already git sandboxed project. If all parties agree, then we could close this case.

zzolo’s picture

Status: Needs review » Postponed (maintainer needs more info)

It seems you are applying for two different users? Please chose the one you want to move forward with and close the other. They are not duplicates because they are two different user accounts. Thank you.

zugaldia’s picture

Status: Postponed (maintainer needs more info) » Needs review

We want to have two different users co-maintaining the module. Therefore, only one project needs to be approved and two users have to be granted maintainer permissions to that module. Thanks.

zzolo’s picture

Status: Needs review » Needs work

Hi @zugaldia. So, one person has to apply for the module, and then the other as co-maintainer. The co-maintainer process is very simple. We just need an issue in the project queue that states that someone should be a co-maintainer.

Since I am actually working right now on Ryan Palmer's application, I would just change the Component of this to a Co-maintainer application and change Project to Full Project, then create an issue to state that you should be co-maintainer.

Let me know if you have any questions.

zugaldia’s picture

Sounds good to me, I'll just wait to see Ryan Palmer's application solved and then we'll proceed with the co-maintainer status. Thanks!

jthorson’s picture

Title: zugaldia [zugaldia] » Amazon SES - co-maintainership request
Project: Drupal.org CVS applications » Drupal.org security advisory coverage applications
Component: miscellaneous » module
Status: Needs work » Closed (won't fix)

I don't see the Amazon SES issue requesting co-maintainership ... I believe you should be able to post an issue in the Amazon SES queue requesting to be added as a co-maintainer, and have Ryan comment his approval ... no need to wait for Ryan to post the issue himself.

Also, I believe that project maintainers may now have the ability to grant commit access on their projects even without full co-maintainer status ...

In any case, as I don't foresee any further action occuring on this particular thread (assuming the co-maintainer steps are pursued in the actual Amazon SES queue), I'm going to set it to closed for now ... feel free to change it back if you'd rather leave this issue it open until the co-maintainership is resolved.

avpaderno’s picture

Issue summary: View changes
Issue tags: -Module review