If you wanted to use with you will have to omit the argument user in your mailer action.
So basically this is how it would look like
class SuccessfulCampaignMailer < ApplicationMailer
default from: ‘no-reply@jginfosys.com’
def successful_campaign_email
@user = params[:user]
mail(to: @user.email , subject: 'The campaign was a success...')
end
end
Any hash that you pass to with will be added to the params, this makes it kind of similar to how actions in controllers work.